Spring Boot调用UserService.searchAll()时userService为空的问题求助
问题解决:Spring Boot中UserService注入引发NullPointerException
核心原因
你在UserController中使用Lombok的@RequiredArgsConstructor注解,但userService字段未添加final修饰符。@RequiredArgsConstructor仅会为final修饰的非空字段生成构造方法,无final修饰的字段不会被纳入构造注入逻辑,导致Spring无法为userService赋值,调用searchAll()时触发NullPointerException。
修复方案
修改UserController代码,给userService字段添加final修饰符:
@Controller @RequiredArgsConstructor public class UserController { /** * Service */ private final UserService userService; // 添加final修饰符 @RequestMapping(value = "/user/list", method = RequestMethod.GET) public String displayList(Model model) { List<User> userlist = userService.searchAll(); model.addAttribute("userlist", userlist); return "user/list"; } }
额外验证点
若修复后问题仍存在,可检查以下内容:
- IDE是否已启用Lombok插件(如IntelliJ IDEA需安装插件并开启"Enable annotation processing"选项)
UserService的@Service注解配置正确,且所在包处于Spring Boot自动扫描范围内(默认扫描启动类所在包及其子包)- Maven/Gradle中Lombok依赖已正确引入,版本与Spring Boot兼容
内容的提问来源于stack exchange,提问作者CatBin5mm
相关产品推荐
相关产品推荐

