也谈Spring Bean的生命周期 和扩展接口应用

http://sexycoding.iteye.com/blog/1046775

BeanPostProcessor:bean的前置处理和后置处理扩展接口。
InitializingBean :初始化构造方式,初始化方法,属性设置后置处理扩展接口。
DisposableBean :如果该Bean是单例的,则当容器销毁并且该Bean实现了DisposableBean接口的时候,调用destory方法;如果该Bean是prototype,则将准备好的Bean提交给调用者,后续不再管理该Bean的生命周期。


public class AnotherDemoBean implements InitializingBean {

@PostConstruct
public void postConstruct() {
System.out.println("AnotherDemoBean: postConstruct-method");
}
public void init() {
System.out.println("AnotherDemoBean: init-method");
}
@Override
public void afterPropertiesSet() throws Exception {
System.out.println("AnotherDemoBean: after properties set!");
}
}

@Component
public class DemoBeanPostProcessor implements BeanPostProcessor {
public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
System.out.println("DemoBeanPostProcessor: post process before initialization, [beanName=" + beanName + ", bean=" + bean + "]");
return bean;
}
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
System.out.println("DemoBeanPostProcessor: post process before initialization, [beanName=" + beanName + ", bean=" + bean + "]");
return bean;
}
}

@Component
public class DemoBean implements BeanFactoryAware, BeanNameAware,
InitializingBean, DisposableBean {
@PostConstruct
public void init() {
System.out.println("DemoBean: init-method");
}
public void destroy() throws Exception {
System.out.println("DemoBean: destroy-method!");
}
public void afterPropertiesSet() throws Exception {
System.out.println("DemoBean: after properties set!");
}
public void setBeanName(String name) {
System.out.println("DemoBean: beanName aware, [name=" + name + "]");
}
public void setBeanFactory(BeanFactory beanFactory) throws BeansException {
System.out.println("DemoBean: beanFactory aware, [beanFactory=" + beanFactory.toString() + "]");
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值