Mon application Web sera déployée en tant que package WAR dans une instance de Jetty. Il doit effectuer beaucoup de mise en cache avant de servir les requêtes. Comment puis-je appeler la méthode de mise en cache avant toute autre chose? est le principal vide void() dans la norme de l'application web?Comment initialiser une application Web?
Répondre
Une méthode standard (ancienne) consiste à coder une servlet qui s'occupe de l'initialisation dans sa méthode init()
. Vous forcer à être initialisé au démarrage de l'application en ajoutant une load-on-startup
valeur positive dans votre web.xml
<servlet>
<servlet-name>myinit</servlet-name>
<servlet-class>com.example.MyInitServlet</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
Aujourd'hui, il est plus fréquent d'avoir un récipient à grains comme le Printemps, qui prend soin de ce genre de choses (instanciation services objets, préchargement de données partageables pouvant être mises en cache, etc.).
Note: cette recette est pour les webapps en général, pas spécifique à Jetty.
J'aime cette solution parce que je peux l'utiliser avec n'importe quel serveur d'application web. Je vais avoir besoin d'une servlet factice pour ça. Existe-t-il un moyen d'effectuer une telle initialisation sans implémenter une servlet? Y a-t-il un static void principal() pour les applications web? – Gatis
Il semble que l'ajout d'un ServletContextListener est tout ce que je veux. – Gatis
Si vous voulez que les gens répondent à vos questions s'il vous plaît accepter quelques réponses –