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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。