Spring初始化和销毁的实现方法
这篇文章主要介绍了Spring初始化和销毁的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
一指定初始化和销毁方法
通过@Bean指定init-method和destroy-method;
@Bean(initMethod="init",destroyMethod="detory")
publicCarcar(){
returnnewCar();
}
二通过让Bean实现InitializingBean(定义初始化逻辑)
@Component
publicclassCatimplementsInitializingBean,DisposableBean{
publicCat(){
System.out.println("catconstructor...");
}
@Override
publicvoiddestroy()throwsException{
//TODOAuto-generatedmethodstub
System.out.println("cat...destroy...");
}
@Override
publicvoidafterPropertiesSet()throwsException{
//TODOAuto-generatedmethodstub
System.out.println("cat...afterPropertiesSet...");
}
}
三可以使用JSR250
@PostConstruct:在bean创建完成并且属性赋值完成;来执行初始化方法
@PreDestroy:在容器销毁bean之前通知我们进行清理工作
@Component
publicclassDogimplementsApplicationContextAware{
//@Autowired
privateApplicationContextapplicationContext;
publicDog(){
System.out.println("dogconstructor...");
}
//对象创建并赋值之后调用
@PostConstruct
publicvoidinit(){
System.out.println("Dog....@PostConstruct...");
}
//容器移除对象之前
@PreDestroy
publicvoiddetory(){
System.out.println("Dog....@PreDestroy...");
}
@Override
publicvoidsetApplicationContext(ApplicationContextapplicationContext)throwsBeansException{
//TODOAuto-generatedmethodstub
this.applicationContext=applicationContext;
}
}
四可以使用BeanPostProcessor
/**
*后置处理器:初始化前后进行处理工作
*将后置处理器加入到容器中
*在bean初始化前后进行一些处理工作;
*postProcessBeforeInitialization:在初始化之前工作
*postProcessAfterInitialization:在初始化之后工作
*/
@Component
publicclassMyBeanPostProcessorimplementsBeanPostProcessor,Ordered{
@Override
publicObjectpostProcessBeforeInitialization(Objectbean,StringbeanName)throwsBeansException{
//TODOAuto-generatedmethodstub
System.out.println("postProcessBeforeInitialization..."+beanName+"=>"+bean);
returnbean;
}
@Override
publicObjectpostProcessAfterInitialization(Objectbean,StringbeanName)throwsBeansException{
//TODOAuto-generatedmethodstub
System.out.println("postProcessAfterInitialization..."+beanName+"=>"+bean);
returnbean;
}
@Override
publicintgetOrder(){
return2;
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。