/ / Où stocker ConfigurableApplicationContext dans une application Java EE? - printemps, java-ee

Où stocker ConfigurableApplicationContext dans une application Java EE? - printemps, java-ee

Je prévois de porter une application Spring sur unEnvironnement Java EE. J’aimerais simplement utiliser JSF comme couche de présentation (au lieu de Spring MVC). Ma question est la suivante: qu’est-ce qu’un endroit sûr dans une application Java EE où je peux stocker le fichier? ConfigurableApplicationContext, de sorte que je n'ai pas besoin de le répéter plusieurs fois:

ConfigurableApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");

Serait-il prudent de le stocker dans le contexte de l’application d’une application Web ou peut-être dans un SingletonEJB? Merci

Réponses:

1 pour la réponse № 1

Les deux options sont OK: pour le contexte d'application, vous devez créer un ServletContextListener et, dans la méthode contextInitialized (), créer un contexte d'application Spring. Pour Singleton EJB, créez une méthode d’initialisation et ajoutez la méthode @PostConstruct.


1 pour la réponse № 2

Si vous utilisez CDI, vous pouvez créer un producteur simple pour créer une instance d'application du ConfigurableApplicationContext. Voir l'exemple suivant:

@ApplicationScoped
public class SpringProducer {
@Produces
public ConfigurableApplicationContext create() {
return new ClassPathXmlApplicationContext("applicationContext.xml");
}
public void close(@Disposes final ConfigurableApplicationContext ctx) {
ctx.close();
}
}

Pour un exemple complet voir ceci Tutoriel de printemps sur WildFly