Chciałbym użyć adnotacji jsf i niektórych wiosennych adnotacji do wstrzyknięcia fasoli sprężystej/usługi do zarządzanego komponentu jsf. (w komponencie jsf chcę używać tylko adnotacji jsf) Nie chcę używać adnotacji, takich jak @named
/@inject
.JSF 2 inject Spring bean/service z @ ManagedProperty i bez xml
Próbowałem znaleźć rozwiązanie w sieci, ale bez powodzenia.
Przykład
@ManagedBean
@ViewScoped
public class MyBean {
@ManagedProperty(value = "#{mySpringBean}")
private MySpringBean mySpringBean;
public void setMySpringBean(MySpringBean mySpringBean) {
this.mySpringBean = mySpringBean;
}
public void doSomething() {
//do something with mySpringBean
}
}
Czy coś jak to możliwe bez użycia xml. Na przykład, bym nie lubią używać coś jak
FacesContextUtils.getWebApplicationContext(context).getBean("MySpringBean");
lub w faces-config.xml
<managed-bean>
<managed-bean-name>myBean</managed-bean-name>
<managed-bean-class>com.mytest.MyBean</managed-bean-class>
<managed-bean-scope>view</managed-bean-scope>
<managed-property>
<property-name>mySpringBean</property-name>
<value>#{mySpringBean}</value>
</managed-property>
</managed-bean>
jest coś takiego jak wyżej możliwe z adnotacjami i bez określającej wszystkie JSF fasola/właściwości i sprężynę fasola/właściwości dla każdego komponentu bean w plikach konfiguracyjnych xml?
Funny, używam tej metody iniekcji i to działa na mnie, ale potem to także zastrzyk nieruchomości w moim 'applicationContext.xml' również. Spring resolver nie działa z ziarnami ViewScoped, które zauważyłem. Spróbuj zmienić to na SessionScoped i zobacz, czy właściwość zostanie wstrzyknięta. –
Chcę uniknąć applicationContext.xml (jestem trochę uparty!) Ale dzięki :) – Dimman