首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >有没有可能在@RequiredArgsConstructor(onConstructor = @__(@Autowired))中添加限定符?

有没有可能在@RequiredArgsConstructor(onConstructor = @__(@Autowired))中添加限定符?
EN

Stack Overflow用户
提问于 2016-07-24 15:19:43
回答 3查看 37.6K关注 0票数 63

如果我想在构造函数依赖注入上使用注释@Qualifier,我应该有如下代码:

代码语言:javascript
复制
public class Example {

    private final ComponentExample component;

    @Autowired
    public Example(@Qualifier("someComponent") ComponentExample component) {
        this.component = component;
    }
}

我知道Lombok的注释可以减少样板代码,并且不需要包含构造函数:@RequiredArgsConstructors(onConstructor=@__(@Inject)),但这只适用于没有限定符的属性。

任何人都知道是否可以在@RequiredArgsConstructor(onConstructor = @__(@Autowired))中添加限定符

EN

回答 3

Stack Overflow用户

发布于 2018-09-27 23:17:41

您可以使用spring技巧来限定字段,方法是使用所需的限定符命名字段,而不使用@Qualifier注释。

代码语言:javascript
复制
@RequiredArgsConstructor
public class ValidationController {

  //@Qualifier("xmlFormValidator")
    private final Validator xmlFormValidator;
票数 13
EN

Stack Overflow用户

发布于 2017-01-19 07:00:26

对我来说这似乎是

代码语言:javascript
复制
@RequiredArgsConstructor(onConstructor=@__(@Autowired))

也可以工作吗(可能我使用的是较新的lombok?)

example code

票数 2
EN

Stack Overflow用户

发布于 2020-12-02 16:15:13

我还没有测试被接受的答案是否工作良好,但我认为更简洁的方法是重命名要限定的名称的成员变量,而不是创建或编辑lombok的配置文件。

代码语言:javascript
复制
// Error code without edit lombok config
@Service
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class Foo {
    @Qualifier("anotherDao") UserDao userDao;
}

只需删除@Qualifier并更改变量的名称

代码语言:javascript
复制
// Works well
@Service
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class Foo {
    UserDao anotherDao;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38549657

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档