博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring容器初始化Bean、销毁Bean前所做操作的定义方式汇总
阅读量:5990 次
发布时间:2019-06-20

本文共 3545 字,大约阅读时间需要 11 分钟。

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 {    // 销毁之前执行    @PreDestroy    public void methodPreDestroy() {        System.out.println("InitAndDestoryService @PreDestroy invoke...");    }    // 初始化之前执行    @PostConstruct    public 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

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;    }    @Override    public void destroy() throws Exception {        // 销毁时的操作        System.out.println("InitializingBeanAndDisposableBeanService destroy() invoke..." + message);    }    @Override    public void afterPropertiesSet() throws Exception {        // 初始化时的操作        System.out.println("InitializingBeanAndDisposableBeanService afterPropertiesSet() invoke..." + message);    }}

applicationContext.xml

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

你可能感兴趣的文章
jQuery.ajax 返回JSON数据 IE8 缓存问题
查看>>
长按移动Cell/Cell排序
查看>>
HQL 语法 明细
查看>>
Java中的util.Date,sql.Date,sql.Time,String类型转换
查看>>
CentOS5.5环境下布署LVS+keepalived
查看>>
构建Java并发模型框架
查看>>
为搜索框设置默认的搜索提示文字,聚焦时清空默认文字,失焦为空时设置默认文字...
查看>>
java程序题:输出101-200之间的素数
查看>>
整理ng2相关姿势
查看>>
在docker上搭建hadoop single node cluster
查看>>
使用Eclipse-Maven-git做Java开发(4)--关于eclipse的更详细介绍
查看>>
[转载] 大道至简:软件工程实践者的思想——第三章 团队缺乏的不只是管理
查看>>
java 面试核心内容
查看>>
Word和Excel中查找替换通配符使用方法详解
查看>>
java Swing组件开发使用
查看>>
卡牌游戏的基本市场分析
查看>>
[转载] C#面向对象设计模式纵横谈——15 Command命令模式
查看>>
Linuxu盘安装制作
查看>>
删除特殊字符命名的文件夹
查看>>
服务器动态磁盘
查看>>