Cześć. Mam pewien problem, korzystam z JSF i JPA. W jaki sposób mogę skorzystać z serwisu (@Inject) w klasie nie będacej beanem ? klasa ta jest używana w klasie serwisowej.
0
0
Dobierz się przez statyczną zmienną:
- Zrób beana, coś a la
ApplicationContextHolder
- Zainiektuj do niego
ApplicationContext
- W konstruktorze przypisz
applicationContext
to zmiennej statycznej - Zrób statycznego
gettera
(a najlepiej zwróćOptionala
), który zwracaapplicationContext
- Wywołaj statycznego
gettera
w obiekcie niezarządzanym przezSpringa
i dobierz się doapplicationContext
- Mając
applicationContext
możesz dobrać się do dowolnegobeana
poprzez np. metodęgetBean
- PROFIT!
0
W JavaEE EJB wyciągniesz przez JNDI lookup, tak jak jest pokazane tutaj:
https://docs.oracle.com/javaee/6/tutorial/doc/gipjf.html
np.
ExampleBean exampleBean = (ExampleBean) InitialContext.lookup("java:module/ExampleBean");
a CDI tak:
SomeBean bean = CDI.current().select(SomeBean.class).get();