У процесса spring есть процесс выключения, чтобы поместить код очистки? - программирование
Подтвердить что ты не робот

У процесса spring есть процесс выключения, чтобы поместить код очистки?

Когда мое веб-приложение spring отключится, есть ли какое-то событие, с которым я могу подключиться, чтобы каким-то образом я смог выполнить некоторый код очистки, чтобы очистить некоторые пулы и т.д.

4b9b3361

Ответ 2

Spring beans имеют атрибут "destroy-method", который будет вызываться при закрытии вашего контекста.

<bean id="bean1" 
    destroy-method="stop"
    class="com.example.Bean" />

Чтобы закрыть его, вы вызываете метод close():

http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/context/support/AbstractApplicationContext.html#close%28%29

(или просто выключите контейнер, если это необходимо)

Надеюсь, что это поможет.

Ответ 3

Невозможно обработать этот метод, чтобы написать класс, который реализует ServletContextListener и выполняет очистку в contextDestroyed метод. Вы добавили бы свой класс в качестве слушателя контекста в web.xml.

Ответ 4

На основе спецификации JSR-250 лучшей практикой использования в современном приложении spring является аннотация @PreDestroy, поскольку использование этого подхода отменит ваш beans от Spring.