Sto provando a @javax.naming.Inject
un bean Spring 3 chiamato WtvrBean
in un JSF 2 @FacesConverter
.Come iniettare un bean Spring 3 in un convertitore JSF 2
Sia il bean che il convertitore sono sullo stesso pacchetto. E, in applicationContext.xml di mia primavera, io sono la scansione di questo pacchetto:
<context:component-scan base-package="my-package" />
Ma questo non sta funzionando. Di sicuro, la classe interna JSF 2 che utilizza il convertitore è sicuramente non in my-package
.
Ad esempio, se rimuovere il @ManagedBean
da un JSF 2 ManagedBean, e sostituirlo a @org.springframework.stereotype.Component
o @Controller
, il WtvrBean
può essere @Inject
ed in questo ManagedBean base Spring WebFlow.
Bene, per quanto ne so, non esiste uno stereotipo @Converter
in primavera.
So che posso usare
FacesContextUtils.getWebApplicationContext(context).getBean("WtvrBean")
Ma, con questo approccio, l'accoppiamento tra la web app e la molla è sempre più stretto. (le annotazioni sono metadati e non sono nemmeno considerate dipendenza da alcuni autori).
Attualmente sto utilizzando FacesContextUtils
se non esiste una soluzione migliore.
Qualche idea?
Ciao. Non voglio che il mio convertitore sia idoneo per l'iniezione. C'è un bean chiamato WtvrBean, e voglio che il bean venga iniettato nel convertitore. Daremo un'occhiata a aspectj. – bluefoot
@bluefoot scusa, questo è quello che intendevo dire - non è possibile iniettare altri fagioli in esso. – Bozho
@bluefoot - oops, ho dimenticato che in realtà l'ho fatto .. vedi il mio aggiornamento – Bozho