簡體   English   中英

等效於Spring中CDI的@Inject @Active

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM