SpringBoot启动报错:java: variable service未在默认构造方法初始化
解决SpringBoot控制器中
variable service not initialized in the default constructor报错 你遇到的问题核心是Lombok的@RequiredArgsConstructor注解未正常生效,导致编译器判定final字段service未被初始化。以下是具体排查和解决步骤:
检查Lombok依赖配置
确保项目依赖文件中正确引入Lombok,且包含注解处理器相关配置:
Maven(pom.xml):<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <scope>provided</scope> </dependency>Gradle(build.gradle):
compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok'注意SpringBoot 3.x版本需要搭配Lombok 1.18.24及以上版本,版本不兼容会直接导致注解失效。
确认IDE的Lombok支持
即便开启了注解处理,也要确保IDE安装并启用了Lombok插件:- IDEA:进入
File > Settings > Plugins,搜索Lombok确认已安装;再到File > Settings > Build, Execution, Deployment > Compiler > Annotation Processors,勾选Enable annotation processing。 - Eclipse:安装Lombok插件后,进入
Project Properties > Java Compiler > Annotation Processing,勾选Enable annotation processing。
- IDEA:进入
手动生成构造函数验证
暂时移除@RequiredArgsConstructor注解,手动编写构造函数测试:public UniversiteController(UniversiteService service) { this.service = service; }如果此时编译正常,说明问题确实出在Lombok注解的生效环节,回到前两步重新排查配置。
清理项目缓存
IDE缓存可能导致注解处理异常,尝试清理后重启IDE:- IDEA:
File > Invalidate Caches...,选择Invalidate and Restart。 - Eclipse:
Project > Clean...,选择当前项目后执行清理。
- IDEA:
内容的提问来源于stack exchange,提问作者RAYAISSE Patrick
相关产品推荐
相关产品推荐

