【发布时间】:2019-07-22 02:16:49
【问题描述】:
我的应用程序中有一个自定义限定符,可以像这样使用:
@Person(name = "bob")
public class Bob implements IPerson { ... }
Person 限定符的 name 值是绑定的。 (未标注@Nonbinding)
我的应用程序的一部分需要知道所有Person bean,而我的应用程序的另一部分需要访问特定的Person
要访问特定的Person,我可以使用:
@Inject @Person(name = "bob")
IPerson bob;
但是我怎样才能获得所有的 Person bean?我不能用
@Inject @Person(name = "")
Instance<IPersion> people;
因为name 具有约束力。如果我将name 声明为@Nonbinding,则上面的代码有效,但我不再能够通过其名称注入特定的人。
我目前使用以下方法获取所有Person bean:
@Inject @Any
private Instance<IPerson> people;
...
for (IPerson person : people) {
if (hasPersonAnnotaion(person)) {...}
}
而hasPersonAnnotaion() 以编程方式检查persons 类中的@Person 注释。有没有更好的办法?
【问题讨论】:
-
您好,请阅读与您的标签和标题相关的stackoverflow.com/help/tagging