/ / Gdzie przechowywać ConfigurableApplicationContext w aplikacji Java EE? - wiosna, java-ee

Gdzie przechowywać ConfigurableApplicationContext w aplikacji Java EE? - wiosna, java-ee

Mam zamiar przenieść aplikację Spring naŚrodowisko Java EE. Po prostu chciałbym użyć JSF jako warstwy prezentacji (zamiast Spring MVC). Moje pytanie brzmi: jakie jest bezpieczne miejsce w aplikacji Java EE, gdzie mogę przechowywać ConfigurableApplicationContext, więc nie muszę powtarzać tego wiele razy:

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

Czy byłoby bezpieczne przechowywanie go w kontekście aplikacji WWW, czy może w SingletonEJB? Dzięki

Odpowiedzi:

1 dla odpowiedzi № 1

Obie opcje są OK: dla kontekstu aplikacji należy utworzyć metodę ServletContextListener, aw contextInitialized () utworzyć kontekst aplikacji Spring. W przypadku Singleton EJB utwórz metodę inicjalizacji i dodaj metodę @PostConstruct.


1 dla odpowiedzi nr 2

Jeśli używasz CDI, możesz stworzyć prostego producenta do tworzenia jednej instancji aplikacji ConfigurableApplicationContext. Zobacz następujący przykład:

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

Pełny przykład można zobaczyć Wiosenny samouczek na temat WildFly