欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 前端技术 > javascript >内容正文

javascript

Spring容器初始化Bean、销毁Bean前所做操作的定义方式汇总

发布时间:2025/4/16 javascript 43 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Spring容器初始化Bean、销毁Bean前所做操作的定义方式汇总 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

1、通过@javax.annotation.PostConstruct和@javax.annotation.PreDestroy定义

package com.xiaochuange.platform.spring4;import org.springframework.stereotype.Component; import javax.annotation.PostConstruct; import javax.annotation.PreDestroy;/*** @Desc:* @Auther: spring* @Date: 2018-9-12 14:56*/ @Component("initAndDestoryService") public class InitAndDestoryService {// 销毁之前执行@PreDestroypublic void methodPreDestroy() {System.out.println("InitAndDestoryService @PreDestroy invoke...");}// 初始化之前执行@PostConstructpublic void methodPostConstruct() {System.out.println("InitAndDestoryService @PostConstruct invoke...");}}

2、通过xml配置文件指定init-method和destroy-method

package com.xiaochuange.platform.spring4;/*** @Desc:* @Auther: spring* @Date: 2018-9-12 15:03*/ public class XmlInitAndDestoryService {private String message;public String getMessage() {return message;}public void setMessage(String message) {this.message = message;}public void methodInit(){System.out.println("XmlInitAndDestoryService methodInit invoke..." + message);}public void methodDestory(){System.out.println("XmlInitAndDestoryService methodDestory invoke..." + message);}}

applicationContext.xml

<bean id="xmlInitAndDestoryService"class="com.xiaochuange.platform.spring4.XmlInitAndDestoryService"init-method="methodInit" destroy-method="methodDestory"><property name="message" value="234"></property> </bean>

3、通过bean实现InitializingBean和DisposableBean接口

package com.xiaochuange.platform.spring4;import org.springframework.beans.factory.DisposableBean; import org.springframework.beans.factory.InitializingBean;/*** @Desc:* @Auther: spring* @Date: 2018-9-12 14:27*/ public class InitializingBeanAndDisposableBeanService implements InitializingBean, DisposableBean {private String message;public String getMessage() {return message;}public void setMessage(String message) {this.message = message;}@Overridepublic void destroy() throws Exception {// 销毁时的操作System.out.println("InitializingBeanAndDisposableBeanService destroy() invoke..." + message);}@Overridepublic void afterPropertiesSet() throws Exception {// 初始化时的操作System.out.println("InitializingBeanAndDisposableBeanService afterPropertiesSet() invoke..." + message);}}

applicationContext.xml

<bean id="personService" class="com.xiaochuange.platform.spring4.InitializingBeanAndDisposableBeanService"><property name="message" value="123"></property> </bean>

4、测试

package com.xiaochuange.platform.spring4;import org.springframework.context.support.AbstractApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext;/*** @Desc:* @Auther: spring* @Date: 2018-9-12 14:45*/ public class MainTest {public static void main(String[] args) {AbstractApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");InitializingBeanAndDisposableBeanService personService = (InitializingBeanAndDisposableBeanService) context.getBean("personService");InitAndDestoryService initAndDestoryService = (InitAndDestoryService) context.getBean("initAndDestoryService");XmlInitAndDestoryService xmlInitAndDestoryService = (XmlInitAndDestoryService) context.getBean("xmlInitAndDestoryService");context.registerShutdownHook();// 输出如下: // InitAndDestoryService @PostConstruct invoke... // InitializingBeanAndDisposableBeanService afterPropertiesSet() invoke...123 // XmlInitAndDestoryService methodInit invoke...234 // XmlInitAndDestoryService methodDestory invoke...234 // InitializingBeanAndDisposableBeanService destroy() invoke...123 // InitAndDestoryService @PreDestroy invoke...} }

转载于:https://blog.51cto.com/springsupervip/2174254

《新程序员》:云原生和全面数字化实践50位技术专家共同创作,文字、视频、音频交互阅读

总结

以上是生活随笔为你收集整理的Spring容器初始化Bean、销毁Bean前所做操作的定义方式汇总的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。