Utilizzo di Spring AOP in un'applicazione JSF
Domanda
considera un'applicazione Web JSF con un bean gestito FooBean.java. Ho dichiarato questo " FooBean " nel mio file faces-config.xml. Ora, se voglio aggiungere il consiglio Spring AOP per i metodi di FooBean, come posso farlo?
- Devo aggiungere un file applicationContext.xml e dichiarare i bean gestiti al suo interno?
- o funzionerà anche se non sto dichiarando i bean gestiti all'interno di un file di configurazione di Spring?
Nota: ho creato un bean Aspect e definito un punto come @Pointcut (" entro (dummy.web.reporting .. *) ") all'interno del bean di aspetto.
Soluzione
Puoi caricare un normale file xml di contesto di primavera dall'interno del tuo web.xml in questo modo:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/classes/spring-context.xml</param-value>
</context-param>
Puoi quindi definire i tuoi bean gestiti qui nel modo Regualar Spring e puoi ancora fare riferimento a questi bean tramite ID nel tuo jsps.
Sarai anche in grado di utilizzare tutti gli elementi Spring AOP standard nel tuo spring-context.xml
Altri suggerimenti
Sto usando Spring AOP pesantemente in un'applicazione Spring JSF, preferirei suggerire di caricare i bean JSF tramite il contenitore Spring e di consentire a Spring di gestire lo Scope dei bean. In un tale scenario, tutti i bean verrebbero caricati dal contenitore Spring, quindi sarebbe molto semplice implementare Spring AOP.
Ulteriori informazioni su questo tipo di integrazione Spring-JSF http: // xebee.xebia.in/2011/10/31/spring-jsf-integration-made-easy-clean-using-spring-annotations/