簡體   English   中英

如何將托管bean注入@Component Spring類?

[英]How do I inject a managed bean into @Component Spring class?

我有一個用@Component注解注解的Spring類。 我需要將bean注入局部變量。 如何將托管bean或EJB變量注入@Component Spring類?

@Component
public class AppInternetAuthenticationProvider implements AuthenticationProvider, Serializable {

    private IAutenticacaoBO autenticacaoBO;

    public void setAutenticacaoBO(IAutenticacaoBO autenticacaoBO) {
        this.autenticacaoBO = autenticacaoBO;
    }

    public AppInternetAuthenticationProvider() {

    }

    @Override
    public Authentication authenticate(Authentication authentication) throws AuthenticationException {
// I need inject here

假設您的上下文已設置為注釋配置,並且您要注入的bean是IAutenticacaoBO您只需要在setter之前添加@Autowired注釋即可。

@Autowired
public void setAutenticacaoBO(IAutenticacaoBO autenticacaoBO) {

實際上,您根本不需要設置器,您只需在private屬性之前添加@Autowired批注即可。

@Autowired
private IAutenticacaoBO autenticacaoBO;

我知道三種類型,其中@Autowired在提到的成員之前:

  1. 現場注入
  2. 二傳手注射
  3. 構造器注入

不鼓勵進行場注入,此處會抱怨諸如IDEA之類的IDE。 setter注入有點棘手,因為可以引入遞歸,因此我采用了構造函數注入。 在Spring> 5(或> 4.3.x嗎?)下,您不再需要@Autowired ,這一切都將神奇地發生。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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