![](/img/trans.png)
[英]Does Spring Context have equivalent of Java CDI's @Inject @Any
[英]Equivalent to @Inject @Active of CDI in Spring
使用CDI,您可以執行以下操作:
@Inject @Active
UserFactory userFactory;
該代碼意味着:我想要一個僅返回活動用戶的userFactory。
Spring的等效方式是什么? 我做了研究,但發現的最接近的是Spring配置文件。 看起來像:
@Autowired @Profiles("active")
UserFactory userFactory;
問題是只能同時激活一個配置文件,對嗎? 如果是這樣,對我來說,它看起來更像CDI中的@Alternative,它不能解決我提到的問題。
Spring也可以使用限定符(用@Qualifier
定義)。 @Active
可能已經是@Qualifier
,因此可以用來確定要使用哪個。
@Component
@Active
public ActiveUserFactory implements UserFactory { ... }
然后在您要使用此位置的地方再次添加@Active
限定詞。
@Autowired
@Active
private UserFactory userFactory;
如果您不想創建注釋,則也可以使用普通的@Qualifer("active")
。
有關更詳細的說明,您可能需要查看參考指南 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.