CDI / Weld: désactiver l'initialisation tardive / l'appel de @PostConstruct

StackOverflow https://stackoverflow.com/questions/8391163

  •  28-10-2019
  •  | 
  •  

Question

J'ai une application CDI / Weld fonctionnant avec Hibernate et JSF 2 dans Jetty.

J'ai besoin de faire une initialisation après le démarrage du serveur Jetty.Je le fais dans une méthode @PostConstruct sur un bean @ApplicationScoped, mais il n'est pas appelé tant qu'une requête n'est pas envoyée à l'application.Je ne peux pas attendre ça.

J'ai essayé de découvrir s'il y avait un moyen de me connecter au cycle de vie de l'application via Weld, mais je n'ai rien trouvé.

Quelqu'un peut-il m'aider s'il vous plaît?

Était-ce utile?

La solution 3

A noter pour quiconque pourrait tomber sur cette question.Je n'ai pas pu le faire fonctionner et j'ai fini par écrire mes propres singletons pour gérer la situation.

Autres conseils

Dans Java EE 7 / CDI 1.1 / Weld 2.0, vous pouvez observer l'événement ServletContext @Initialized (ApplicationScoped.class).Cela entraînera la création d'une instance de votre bean avec impatience.

Qu'en est-il d'un écouteur de contexte de servlet?L'injection devrait fonctionner correctement dans ceux-ci si vous avez besoin d'arriver à quelque chose.Cela dépend également du type d'initialisation que vous devez effectuer.Il se peut que vous ne puissiez pas accéder à certaines choses, telles que les requêtes ou les haricots de conversation.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top