龙目岛不生成RequiredArgsConstructor和AllArgsConstructor

时间:2019-01-23 14:32:15

标签: java spring-boot gradle lombok

我正在将Lombok 1.16.18和Gradle 4.0与Java 8和Spring-Boot 1.5.9.RELEASE一起使用。

当我构建并运行项目时,它会成功,但是在调用包含自动装配的服务时,它将失败,并使用NullPointerException with zipfile.ZipFile('{}_archive.zip'.format(ts), 'w') as myzip: for x in to_archive: myzip.write(x) @RequiredArgsConstructor(onConstructor = @__(@Autowired))

我已经检查了生成的.class,但它们缺少构造函数。

当然,如果我手动创建构造函数并将@AllArgsConstructor(onConstructor = @__(@Autowired))放在上面,它将起作用。但是我正在一个有很多现有代码的大型项目中,并且不想重写所有内容。为什么会发生这种情况有什么想法?看起来gradle或lombok并未预处理这些注释,但是其他所有@Autowire@Getter等都可以正常工作,并且生成的.class文件包含它们...

1 个答案:

答案 0 :(得分:7)

我仅使用@RequiredArgsConstructor成员变量定义final的构造函数注入,如下所示(不使用onConstructor

@Repository
@Slf4j
@RequiredArgsConstructor
public class FieldRepository {

    private final DSLContext dsl;

    private final DataSource dataSource;

    //... dsl and datasource are correctly injected 

}