89 votes

Comment fermer un ApplicationContext de Spring ?

Une fois mon application terminée, je veux fermer le contexte Spring.
Le code pertinent comporte un ApplicationContext mais je n'ai pas pu trouver une close méthode.

155voto

Tomasz Nurkiewicz Points 140462

36voto

dogbane Points 85749

Vous devez enregistrer un crochet d'arrêt avec la JVM comme indiqué ci-dessous :

((AbstractApplicationContext)appCtx).registerShutdownHook();

Pour plus d'informations, voir : Manuel de printemps : 3.6.1.6 Fermeture progressive du conteneur IoC de Spring dans les applications non web

14voto

Ashish Gaikwad Points 171

Si vous initialisez un contexte comme celui ci-dessous

ApplicationContext context = new ClassPathXmlApplicationContext(beansXML); 

un contexte propre comme celui-ci

((ClassPathXmlApplicationContext) context).close();

13voto

Chirag Points 976

Si Java SE 7 et plus Si vous ne fermez pas, utilisez try-with-resources qui garantit que chaque ressource est fermée à la fin de la déclaration.

try(final AbstractApplicationContext applicationContext = new ClassPathXmlApplicationContext(new String[]{"classpath*:META-INF/spring/*.xml" }))
{
     //write your code
}

1voto

pushpendra yadav Points 571

Étapes pour fermer le ApplicationContext Objet

  1. Type Cast le ApplicationContext S'opposer à ConfigurableApplicationContext objet.
  2. puis appeler l'objet de fermeture sur cela.

exemple :

 ApplicationContext context = new ClassPathXmlApplicationContext("mybeans.xml");

((ConfigurableApplicationContext)context ).close();

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X