我正在开发一个Java Spring应用程序。我的应用程序中有一些字段是使用. yml配置文件配置的。我想在这些字段上使用@Value注解导入这些值。我还想使用构造函数注入而不是字段注入的最佳实践。但是我想用Lombok来写我的构造函数,而不是手工写。有没有办法一次完成所有这些事情呢?举个例子,这个方法不起作用,但是和我想做的很相似:
@AllArgsConstructor
public class my service {
@Value("${my.config.value}")
private String myField;
private Object myDependency;
...
}
在本例中,我需要的是Lombok生成一个只设置myDependency的构造函数,并从我的配置文件中读取myField。
谢谢!
2条答案
按热度按时间kb5ga3dv1#
您需要
@RequiredArgsConstructor
并将myDependency
标记为final。在这种情况下,Lombok将基于作为参数的“required”final字段生成一个构造函数,例如:这等于:
因为这里只有一个构造函数,所以Spring注入
MyComponent
without the explicit use of the@Autowired
annotation。d5vmydt92#
请确保您使用的Lombok版本至少为1.18.4,并且您已将所需的注解添加到lombok.config文件中。
下面是您的类:
下面是Lombok生成的类:
PS:确保你在/src/main/java文件夹下有lombok.config文件。我试着把它添加到/src/main/resources,它不起作用。
响应取自Lombok - retain field's annotation in constructor input params。