2011-02-06 13 views
49

Desidero iniettare uno ApplicationContext stesso a un bean.Come iniettare ApplicationContext stesso

Qualcosa di simile

public void setApplicationContext(ApplicationContect context) { 
    this.context = context; 
} 

Che è possibile, in primavera?

risposta

96

commenti precedenti sono ok, ma io di solito preferisco:

@Autowired private ApplicationContext applicationContext; 
+2

+1 Btw, hai qualche idea su Pro Contro tra l'iniezione applicationContext da direttamente @Autowired o implementando l'interfaccia ApplicationContextAware? Grazie. – Javatar

+8

@Bariscan: Penso che non ci siano pro e contro. Ma preferisco questo perché @ Autowired è quello che uso per l'iniezione di tutte le proprietà, quindi come fare diversamente in modo diverso è un ApplicationContext? – sinuhepop

+0

Puoi fornire un esempio più dettagliato di @Autowired (Sono un grande fan) Contesto applicativo? È sempre nullo per me. Sono necessarie altre interfacce? Grazie. –

31

Facile, utilizzando l'interfaccia ApplicationContextAware.

public class A implements ApplicationContextAware { 
    private ApplicationContext context; 

    public void setApplicationContext(ApplicationContext context) { 
     this.context = context; 
    } 
} 

Quindi nel proprio applicationContext effettivo è sufficiente fare riferimento al bean.

<bean id="a" class="com.company.A" /> 
10

Sì, proprio l'attuazione del -interface.

Problemi correlati