Я пытаюсь запустить и остановить планировщик кварца в одноэлементном бобах весны. Но postconstruct вызывается два раза, а preestroy вообще не вызывается. This ссылается на то, что из-за проксирования его естественно вызывать дважды, но это вызывает исключение в методе postconstruct. Я хочу, чтобы postConstruct вызывался один раз после загрузки одного синтаксиса.Отметки Spring @PreDestroy и @PostConstruct
1
A
ответ
0
Я пишу слушатель контекстного загрузчика и меняю прослушиватель web.xml. Так что я могу инициализировать bean-компонент только один раз.
<listener>
<listener-class>
CustomContextLoaderListener
</listener-class>
</listener>
public class CustomContextLoaderListener extends
org.springframework.web.context.ContextLoaderListener{
Scheduler scheduler;
@Override
public void contextInitialized(javax.servlet.ServletContextEvent event) {
try{
super.contextInitialized(event);
this.scheduler= WebApplicationContextUtils.getWebApplicationContext(event.getServletContext()).getBean(Scheduler.class);
}
@Override
public void contextDestroyed(ServletContextEvent event){
super.contextDestroyed(event);
scheduler.stopSchedulers();
}
0
Почему бы вам не попробовать это с помощью init-method или попробовать реализовать инициализирующий компонент. Они обеспечивают альтернативные подходы к postConstruct.
Когда пружинные бобы выгружаются, то есть когда контейнер закрыт или метод close() в методе ConfigurableApplicationContext вызывается каким-либо другим способом, вызывается preDestroy.
Смежные вопросы
- 1. Являются ли аннотации метода Spring @PostConstruct и @PreDestroy формой АОП?
- 2. Spring @PreDestroy метод
- 3. Java Annotations (Postconstruct and PreDestroy) на AEM/CQ5
- 4. Без использования конфигурации файла xml, как я могу использовать @PostConstruct и @PreDestroy?
- 5. Xpages @PreDestroy
- 6. Spring JPA Repositories @PostConstruct
- 7. Spring зависимость @PostConstruct
- 8. Spring PostConstruct контейнера
- 9. Развертывание новой версии приложения Spring для ElasticBeanstalk, @PreDestroy не вызывается?
- 10. Требуется ли <context: annotation-config> для аннотации @Resource, @PostConstruct и @PreDestroy?
- 11. Использование Spring @Lazy и @PostConstruct аннотаций
- 12. @PostConstruct Annotation и JSF
- 13. Mockito + Spring + @PostConstruct, ложная ошибка инициализации, почему вызывается @PostConstruct?
- 14. @PreDestroy не вызывается для Runnable
- 15. EJB Pooling vs Thread-safe и @PreDestroy
- 16. Атрибут Spring @PostConstruct vs. init-method
- 17. Использование аннотации @PostConstruct в Spring 3.0.0.RC1
- 18. Как инициализировать конечную переменную Spring @PostConstruct?
- 19. Spring @PostConstruct в зависимости от @Profile
- 20. JSF @managedproperty и @PostConstruct
- 21. @PostConstruct и проверяемые исключения
- 22. Области и @PostConstruct
- 23. Spring Tool Suite - org.eclipse.e4.core.di.InjectionException: java.lang.NoClassDefFoundError: javax/annotation/PostConstruct
- 24. Ресурс недоступен в методе @Singleton @Predestroy
- 25. Почему @PostConstruct не работает?
- 26. Почему нельзя использовать @PostConstruct и @Retryable вместе?
- 27. Весенний заказ на автопогрузку и @PostConstruct
- 28. PostConstruct вызывается дважды
- 29. метод EJB 3.1 Singleton Session Bean @PreDestroy не называется
- 30. Как проверить конструктор класса с методом @PostConstruct с использованием Spring?
init-metod также называется два раза – ayengin