You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

STS4中使用Lombok @RequiredArgsConstructor替代@Autowired失效求助

问题解决:Lombok @RequiredArgsConstructor 无法在STS4中实现依赖注入

问题重现

我用STS4开发Spring Boot项目,想在浏览器展示数据库信息列表,但在UserService.java中使用Lombok的@RequiredArgsConstructor配合private final UserRepository userRepository;时,无法实现依赖注入。已做排查:

  • 在application.properties添加配置:spring.thymeleaf.check-template-location=false、spring.jpa.open-in-view=false
  • 移除SpringToolSuite4.ini中的Lombok配置,通过STS4的HELP>Install New Software安装了官方Lombok插件,安装成功
  • 在pom.xml手动指定Lombok版本1.18.30,出现Duplicating managed version 1.18.30 for lombok错误,问题未解决

目前发现编写private final UserRepository userRepository;时出现非空警告,怀疑STS4未正确处理Lombok注解和导入。


解决方案

  1. 修复pom.xml版本冲突
    Spring Boot父POM已经内置管理了Lombok的版本,手动指定版本会导致冲突。直接删除pom.xml中手动添加的Lombok版本配置,保留基础依赖即可:

    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <optional>true</optional>
    </dependency>
    
  2. 验证STS4 Lombok插件状态
    重启STS4后,打开Window > Preferences > Lombok,确保@RequiredArgsConstructor对应的Constructor选项已勾选,插件处于激活状态。

  3. 检查UserService类的配置

    • 必须给UserService类加上@Service注解,Spring才能识别这个类为可注入的Bean
    • 确认@RequiredArgsConstructor的导入路径是import lombok.RequiredArgsConstructor;,不要导入错误的包
    • 针对非空警告:要么给userRepository字段加上@NonNull注解(final字段配合@RequiredArgsConstructor本就会被处理,这步可选),要么在STS4的Window > Preferences > Java > Compiler > Errors/Warnings > Null analysis中调低相关警告级别。
  4. 清理项目缓存与重新构建

    • 右键项目选择Maven > Update Project,勾选Force Update of Snapshots/Releases后执行
    • 执行Maven的clean和compile命令,或者通过Project > Clean清理项目后重新构建
  5. 确认UserRepository的有效性
    确保UserRepository接口继承了JpaRepository(或Spring Data的其他Repository接口),并且加上@Repository注解(Spring Data虽能自动识别,但显式添加更稳妥)。


内容的提问来源于stack exchange,提问作者CatBin5mm

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 06:33:25