8
votes

Comment initialiser l'application au printemps?

venez maintenant directement à mon point,

in jsp Je ferai le processus d'initialisation de mon application comme, xxx

maintenant je Je vais reconstruire mon application précédente à partir de servlets à printemps 3.2 .

Comment puis-je faire cela avec printemps 3.2 ?

Un de mes Collègue m'a dit que cette initialisation avec constructeur du contrôleur de ressort .

Parce que j'ai créé le haricon pour Classe de contrôleur dans l'application ApplicationContext.xml et je charge le applicateurContext.xml fichier avec contextloadlistner dans web.xml .

est-ce la bonne façon d'initialisation?

Qu'en est-il de ApplicationListener au printemps?

Quelle est la meilleure façon d'initialiser l'application dans printemps 3.2 ?

J'espère que nos utilisateurs de stack donneront une bonne solution .


0 commentaires

5 Réponses :


0
votes

Vous pouvez le faire en ayant un haricot avec @postConstruct code> et injectant dans votre servlet-config au printemps. Jetez un coup d'oeil sur le code ici et une des lignes en bas.

<beans:bean id="PlayerImportDaoImpl"
        class="com.footieview.app.importer.dao.PlayerImportDaoImpl" />


0 commentaires

6
votes

Pourquoi voulez-vous initialiser l'application de printemps par vous-même? Le printemps fera automatiquement pour vous: C'est ainsi que vous indiquez à votre serveur d'initialiser le ressort: xxx

Cela se produira pendant le déploiement et tous les haricots sont définis là-bas, il sera initialisé (en fonction de la paresse). Si vous voulez vraiment faire quelque chose une fois que le haricot est initialisé, avant l'utilisation, utilisez Initializingbean Exemple serait xxx


2 commentaires

Ce n'est peut-être pas une bonne idée d'initialiser l'application via contextloaderlistener . Il est préférable de configurer votre DispatcherServlet et déléguer des tâches spécifiques via contextloaderlistener uniquement lorsque vous avez besoin du contexte.


Pourquoi c'est mauvaise idée? Le cadre de printemps est livré avec cet auditeur et vous recommande de l'utiliser pour le charger. DispatcherServlet Pour MVC et MVC est inférieur à 10% du cadre lui-même, que si je ne veux pas utiliser MVC?



9
votes

Le printemps fera beaucoup de ceci pour vous s'il est configuré correctement. Si vous avez vraiment besoin d'exécuter du code (vs à l'aide de quelque chose qui se configurera automatiquement comme log4j), je vous suggérerais d'enregistrer un initializizingbean et de remplacement après-accert . Vous ajouteriez cette définition de haricot à l'applicationContext.xml Fichier: xxx

En conséquence, le ressort invoquera le myInitializer.AfterPropertiSet () méthode lorsque l'application a été complètement initialisé. Vous pouvez également utiliser l'annotation @postConstruct sur un haricot enregistré dans le contexte de l'application, mais rien ne garantit que le reste de l'application sera initialisé lorsque cette méthode est invoquée. Si vous voulez qu'il soit exécuté lorsque tout a été mis en place, la méthode d'initialisation du haricot est la voie à suivre. J'ai utilisé cette stratégie pour démarrer une prise de serveur, etc. qui devait fonctionner indépendamment du cycle de vie de la demande Web.


5 commentaires

Merci pour votre réponse.wat à propos de votre opinion avec la réponse. Stackoverflow.com/questions/8686507/...


@KitePlayer qui fonctionnerait aussi. Cela dépend de la question de savoir si vous devez être informé de plusieurs types d'événements d'application ou juste le démarrage.


J'ai besoin de faire une tâche, une seule fois après que mon tomcat a commencé ... Quel est le meilleur moyen pour cela?


@KitePlayer je ferais cela comme je l'ai décrit. (En fait, je ai l'a fait comme ça que j'ai décrit!;))


Merci et mis en œuvre avec succès vos IDes et fonctionne bien.



0
votes

Créer une application Spring 3 MVC et vous n'avez pas besoin de le faire!

printemps MVC prend en charge JSPS et vous pouvez faire toute la configuration via Annotations

voir http: // fruzenshtein. com / ressort-mvc-création-of-Simple-contrôleur-with-java-basé sur config / pour un exemple.


0 commentaires

2
votes

contextloaderlistener code> est une sorte de bootstrapper pour démarrer le ressort webapplicationContext code> tandis que ApplicationListener code> est plus au niveau de l'application Java plutôt que sur l'application Web. Contexte.

contextloaderlistener code> est un outil excellent et standard pour la contextualisation de votre application s'il possède plusieurs Disternersservlet Code> S ou certains servlets / filtres de servlet mappés sur différents services. Fondamentalement, il est pratique d'avoir des auditeurs pour différents servlets de telles applications afin que vous puissiez avoir une contextualisation à grain fin. P>

Je ne connais pas la nature de l'application que vous construisez mais je suppose que vous essayez quelque chose de base pour l'instant. Si tel est le cas, et même dans les cas où vous avez une configuration plus complexe, il est préférable de charger le démarrage d'un contrôleur qui prend soin de vos principales routines d'initialisation, y compris de votre contextualisation. Vous pouvez utiliser le haricot du contrôleur que vous avez avec quelque chose comme celui-ci dans votre web.xml: p> xxx pré>

Ce servel peut également être mappé et invoqué chaque fois que vous lisez un certain motif d'URL. Par exemple, p> xxx pré>

et dans le descripteur de déploiement Web, ce bit est comme si vous préférez que vos servlets sur d'autres services de printemps tels que Security Spring Security: P>

<servlet-mapping>
    <servlet-name>crunchify</servlet-name>
    <url-pattern>*.html</url-pattern>
</servlet-mapping>