- Spring Essentials
- Shameer Kunjumohamed Hamidreza Sattari
- 224字
- 2021-07-16 13:05:47
Hooking to bean life cycles
Often, in enterprise application development, developers will want to plug in some extra functionality to be executed just after the construction and before the destruction of a business service. Spring provides multiple methods for interacting with such stages in the life cycle of a bean.
Implementing InitializingBean and DisposableBean
The Spring IoC container invokes the callback methods afterPropertiesSet()
of org.springframework.beans.factory.InitializingBean
and destroy()
of org.springframework.beans.factory.DisposableBean
on any Spring bean and implements them:
public class UserServiceImpl implements UserService, InitializingBean, DisposableBean { ... @Override public void afterPropertiesSet() throws Exception { logger.debug(this + ".afterPropertiesSet() invoked!"); // Your initialization code goes here.. } @Override public void destroy() throws Exception { logger.debug(this + ".destroy() invoked!"); // Your cleanup code goes here.. } ... }
Annotating @PostConstruct and @PreDestroy on @Components
Spring supports JSR 250 @PostConstruct
and @PreDestroy
annotations on any Spring bean in an annotation-supported environment, as shown here. Spring encourages this approach over implementing Spring-specific interfaces, as given in the previous section:
@Service public class AnnotatedTaskService implements TaskService { ... @PostConstruct public void init() { logger.debug(this.getClass().getName() + " started!"); } @PreDestroy public void cleanup() { logger.debug(this.getClass().getName() + " is about to destroy!"); } ... }
The init-method and destroy-method attributes of <bean/>
If you are using XML-only bean configuration metadata, then your best option is to declare init-method
and destroy-method
attributes on your <bean/>
tags:
<bean id="xmlTaskService" class="com...XmlDefinedTaskService" init-method="init" destroy-method="cleanup"> ... </bean>
- Google Apps Script for Beginners
- Visual Basic程序開發(學習筆記)
- Oracle Database In-Memory(架構與實踐)
- Visual Basic程序設計(第3版):學習指導與練習
- Oracle BAM 11gR1 Handbook
- HTML5從入門到精通 (第2版)
- 移動界面(Web/App)Photoshop UI設計十全大補
- 零基礎趣學C語言
- Visual C++開發入行真功夫
- Unity UI Cookbook
- 21天學通C++(第5版)
- 硬件產品設計與開發:從原型到交付
- 深入解析Java編譯器:源碼剖析與實例詳解
- UI設計基礎培訓教程(全彩版)
- TypeScript圖形渲染實戰:2D架構設計與實現