Si vous définissez un haricot qui implémente l'DisposableBean interface, puis le Printemps va appeler le
void destroy()throwsException;
méthode avant de destrying la fève.
Que c'est une façon, l'autre, c'est quand votre bean n'a pas à mettre en œuvre l'interface donnée.
Dans l'un des vôtres ConfigurationSupport classes de votre bean doit être défini comme pulic méthode avec le @Bean annotation.
Ce qui résout le problème de ot tiers de la dépendance des haricots, et libère le code inutile de Printemps interfaces..
Je ne sais pas, mais j'ai trouvé qu'il y a @PostConstruct et @PreDestroy annotations. Voir: static.springsource.org/spring/docs/3.0.x/reference/... Je trouve @PostConstruct et @PreDestroy à être beaucoup plus claire que les autres moyens de faire ce genre de chose, il minimise la magie. C'est ce que je cherchais! La documentation parle DisposableBean et @PreDestroy mais je me demandais comment le spécifier pour les tiers des classes comme org.apache.commons.dbcp.BasicDataSource où l'on ne peut pas toucher au code. Merci beaucoup! L'autre façon... je dirais même la meilleure façon serait de spécifier "init-method" et "destroy-method" de votre bean... comme ceci: mkyong.com/spring/spring-init-method-and-destroy-method-example Ce qui résout le problème de ot tiers de la dépendance des haricots, et libère le code inutile de Printemps interfaces...
Le fait de la @PreDestroy et la @PostDestroy tags disponibles.
Maintenant, disons que vous avez le ShutDownBean que vous souhaitez exécuter du code lorsque l'arrêt de rappel est appelée.
Le registres de la fève.
note: AbstractApplicationContext a la mise en œuvre de registerShutdownHook() donc, c'est le minimum de la catégorie, vous pouvez utiliser.
Aussi, si vous pouvez utiliser la détruire-méthode balise pour les cours, vous n'avez pas le contrôle de leur mise en œuvre. par exemple, vous pouvez ajouter ce dans votre applcation-context.xml:
Vous voulez dire, comme l'annotation d'une méthode avec le JDK standard @PreDestroy? Qui est assez commun au Printemps, et généralement de mieux que d'utiliser un destroy-method attribut du bean déclaration XML. Tout ce que vous avez à faire est d'inclure
<context:annotation-config/>
Dans votre fichier de configuration et le Printemps se charge du reste.
il y a la norme .NET IDisposable.Dispose() méthode. Je ne sais pas le Printemps, mais de rapide recherche sur google, il semble que @predestroy est à peu près le même concept.
Si vous définissez un haricot qui implémente l'DisposableBean interface, puis le Printemps va appeler le
méthode avant de destrying la fève.
Que c'est une façon, l'autre, c'est quand votre bean n'a pas à mettre en œuvre l'interface donnée.
Dans l'un des vôtres ConfigurationSupport classes de votre bean doit être défini comme pulic méthode avec le @Bean annotation.
La méthode "yourDestroyMethod" doit être définie dans YourBean.class et puis, le Printemps de l'appeler avant de détruire le haricot.
Pour plus d'infos, consultez le Ressort de la documentation: La Destruction des rappels
Mise à JOUR
La troisième voie... je dirais même la meilleure façon serait de spécifier "init-method" et "destroy-method" de votre haricot... comme ceci: mkyong.com/spring/spring-init-method-and-destroy-method-example
Ce qui résout le problème de ot tiers de la dépendance des haricots, et libère le code inutile de Printemps interfaces..
Je trouve @PostConstruct et @PreDestroy à être beaucoup plus claire que les autres moyens de faire ce genre de chose, il minimise la magie.
C'est ce que je cherchais! La documentation parle DisposableBean et @PreDestroy mais je me demandais comment le spécifier pour les tiers des classes comme org.apache.commons.dbcp.BasicDataSource où l'on ne peut pas toucher au code. Merci beaucoup!
L'autre façon... je dirais même la meilleure façon serait de spécifier "init-method" et "destroy-method" de votre bean... comme ceci: mkyong.com/spring/spring-init-method-and-destroy-method-example Ce qui résout le problème de ot tiers de la dépendance des haricots, et libère le code inutile de Printemps interfaces...
OriginalL'auteur davorp
Il y a 3 façons de le faire.
Mon faivorite est l' @PreDestroy méthode.
À faire que u besoin:
Dans application-context.xml ajouter le schéma suivant:
Le fait de la @PreDestroy et la @PostDestroy tags disponibles.
Maintenant, disons que vous avez le ShutDownBean que vous souhaitez exécuter du code lorsque l'arrêt de rappel est appelée.
Le registres de la fève.
Maintenant que vous avez terminé.
Si vous avez un application de bureau alors d'utiliser le @PreDestroy d'annotation, vous devez le fermer comme ceci:
note:
AbstractApplicationContext a la mise en œuvre de registerShutdownHook() donc, c'est le minimum de la catégorie, vous pouvez utiliser.
Aussi, si vous pouvez utiliser la détruire-méthode balise pour les cours, vous n'avez pas le contrôle de leur mise en œuvre. par exemple, vous pouvez ajouter ce dans votre applcation-context.xml:
Le détruire-méthode de la valeur peut avoir de la visibilité, mais a besoin de pas avoir d'arguments.
Espérons que cette aide!
OriginalL'auteur zpontikas
Vous voulez dire, comme l'annotation d'une méthode avec le JDK standard
@PreDestroy
? Qui est assez commun au Printemps, et généralement de mieux que d'utiliser undestroy-method
attribut du bean déclaration XML. Tout ce que vous avez à faire est d'inclureDans votre fichier de configuration et le Printemps se charge du reste.
OriginalL'auteur Donal Fellows
il y a la norme .NET
IDisposable.Dispose()
méthode. Je ne sais pas le Printemps, mais de rapide recherche sur google, il semble que @predestroy est à peu près le même concept.OriginalL'auteur Krzysztof Kozmic