Peut obtenir l'attribut "destroy-method".Attribut DESTROY-METHOD du haricot de printemps et bean "prototype" d-application web
Tout d'abord, même si je tape le nom de la méthode non-existante dans l'attribut « détruire méthode »,
initialisation du printemps se termine bien (déjà étrange!).
Ensuite, lorsqu'un haricot a une portée "prototype", alors je suppose qu'il doit être détruit avant l'application
est fermé. Cela n'arrive pas, il n'est tout simplement jamais appelé dans mon cas. Cependant, après avoir extrait ce bean, je peux appeler cette méthode explicitement et elle fait son travail.
Pourriez-vous expliquer pourquoi cette méthode n'est jamais appelée dans mon cas Spring 2.5?
p.s. La méthode existe, elle est publique et n'a pas d'arguments.
Cela semble être une tâche plus difficile que je pensais.
Le problème est que cette méthode de destruction est appelée chaque fois que le contexte est fermé, et c'est un cas rare.
Ma question est la suivante:
J'ai une application web. J'ai un haricot «prototype». Ce dont j'ai besoin, c'est quand la session en cours est fermée, cette méthode de destruction a été appelée automatiquement par Spring.
Je peux le faire à la main, mais y a-t-il une solution pour que Spring fasse ce travail? Il détruit le bean après que la session est détruite, il pourrait être possible pour Spring d'appeler une méthode sur ce haricot avant de le détruire?
p.s. Spring ne gère pas le cycle de vie des prototypes de beans, donc Spring ne les détruit pas :)
peut-être de se pencher sur les aspects – ant
pouvez-vous expliquer ce que cela fait haricot, pourquoi vous besoin de le détruire à chaque session, etc? J'ai le sentiment que vous posez peut-être une question en fonction de ce que vous pensez devoir résoudre, mais que le vrai problème/problème pourrait avoir une solution beaucoup plus facile. Par exemple, ce bean gère-t-il certaines ressources (comme une connexion à une base de données)? –
@matt b Supposons que, lorsque la session se ferme, ce bean doit enregistrer une instruction "Je suis en train d'être détruit". Je vois maintenant que le printemps ne manipule pas les prototypes, donc il n'y a qu'un seul moyen: le faire manuellement, dans une servlet, à la main. Le printemps ne peut pas vraiment aider ici. – EugeneP