Spring Boot中使用Lombok的@AllArgsConstructor注解时出现onConstructor_()方法未找到错误
Spring Boot中使用Lombok的@AllArgsConstructor注解时出现onConstructor_()方法未找到错误
嘿,这个问题我之前也踩过坑,其实是Lombok版本更新带来的小变化导致的!
你碰到的报错cannot find symbol: method onConstructor_(),核心原因是你当前用的Lombok版本已经废弃或移除了onConstructor_这个属性——在Lombok的新版本(大概1.18.16及以后)里,这个带下划线的写法被改成了不带下划线的onConstructor。
给你两个实用的解决方案:
方案一:适配新版本Lombok,修正注解写法
直接把注解里的onConstructor_改成onConstructor就行,修正后的代码如下:
@AllArgsConstructor(onConstructor = @Autowired)
方案二:更简洁的写法(适配Spring Boot 2.2+)
如果你的Spring Boot版本是2.2及以上,其实连onConstructor参数都可以省掉!因为Spring Boot 2.2+默认支持构造方法注入,只要你的类是Spring管理的Bean(比如标注了@Repository、@Service这类注解),直接用@AllArgsConstructor就够了,Spring会自动把依赖注入到构造方法里:
@AllArgsConstructor @Repository public class YourRepository { private final YourDependency dependency; }
要是你的项目因为某些限制必须用老版本Lombok,那得确保依赖版本在1.18.10左右(这个版本还保留onConstructor_),但更推荐升级Lombok版本并使用新写法,毕竟老写法已经被官方废弃了。
备注:内容来源于stack exchange,提问作者user32299629
相关产品推荐
相关产品推荐

