如果我想在构造函数依赖注入上使用注释@Qualifier
,我应该有如下代码:
public class Example {
private final ComponentExample component;
@Autowired
public Example(@Qualifier("someComponent") ComponentExample component) {
this.component = component;
}
}
我知道Lombok的注释可以减少样板代码,并且不需要包含构造函数:@RequiredArgsConstructors(onConstructor=@__(@Inject))
,但这只适用于没有限定符的属性。
任何人都知道是否可以在@RequiredArgsConstructor(onConstructor = @__(@Autowired))
中添加限定符
发布于 2018-09-27 23:17:41
您可以使用spring技巧来限定字段,方法是使用所需的限定符命名字段,而不使用@Qualifier注释。
@RequiredArgsConstructor
public class ValidationController {
//@Qualifier("xmlFormValidator")
private final Validator xmlFormValidator;
发布于 2017-01-19 07:00:26
对我来说这似乎是
@RequiredArgsConstructor(onConstructor=@__(@Autowired))
也可以工作吗(可能我使用的是较新的lombok?)
发布于 2020-12-02 16:15:13
我还没有测试被接受的答案是否工作良好,但我认为更简洁的方法是重命名要限定的名称的成员变量,而不是创建或编辑lombok的配置文件。
// Error code without edit lombok config
@Service
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class Foo {
@Qualifier("anotherDao") UserDao userDao;
}
只需删除@Qualifier并更改变量的名称
// Works well
@Service
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class Foo {
UserDao anotherDao;
}
https://stackoverflow.com/questions/38549657
复制相似问题