java - Lombok 不生成RequiredArgsConstructor 和AllArgsConstructor
问题描述
我正在使用带有 Java 8 和 Spring-Boot 1.5.9.RELEASE 的 Lombok 1.16.18 和 Gradle 4.0。
当我构建并运行项目时,它会成功,但是当调用包含 Autowiring 的服务时,它会失败,并使用
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
or出现 NullPointerException @AllArgsConstructor(onConstructor = @__(@Autowired))
。
我检查了生成的 .classes 并且它们缺少构造函数。
当然,如果我手动创建构造函数并戴上@Autowire
它就可以了。但是我正在开发一个包含大量现有代码的大型项目,并且不想重写所有内容。关于为什么会发生这种情况的任何想法?看起来 gradle 或 lombok 没有预处理这些注释,但是所有其他@Getter
等等@Setter
都工作正常并且生成的 .class 文件包含它们......
解决方案
我使用构造函数注入只定义成员变量如下(不@RequiredArgsConstructor
使用)final
onConstructor
@Repository
@Slf4j
@RequiredArgsConstructor
public class FieldRepository {
private final DSLContext dsl;
private final DataSource dataSource;
//... dsl and datasource are correctly injected
}
推荐阅读
- selenium - Selenium 推荐的 WebDriver 包是什么
- javascript - 一个函数中的多个 if 条件不起作用
- bash - 如何将数字保存到变量然后输出该值?
- java - 如何修复小程序在 Eclipse 中工作但不能在任何浏览器中工作
- date - Laravel 5 中的日期验证和日期数据库插入
- vue.js - Nuxt.js 存储,将操作发送到其他存储
- macos - 使用 ipad 连接到 mac 上的 localhost
- javascript - 一页中有多个 Highcharts - 仅显示一个图表
- python - jupyter notebook 显示带有 Python 和 virtualenv 的内核错误
- python - 寻找内存有效的外积和