栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Spring之Bean的初始化和销毁

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring之Bean的初始化和销毁

文章目录
  • 1、三种Bean初始化方式
  • 2、三种Bean销毁方式

1、三种Bean初始化方式

1. @Bean注解initMethod属性指定初始化方法

@Bean(initMethod = "init3")
public Bean1 bean1() {
    return new Bean1();
}

2. 实现InitializingBean接口
3. @PostConstruct注解属性指定初始化方法

@Slf4j
public class Bean1 implements InitializingBean {
    
    @PostConstruct
    public void init1() {
        log.debug("初始化1");
    }

    @Override
    public void afterPropertiesSet() throws Exception {
        log.debug("初始化2");
    }

    public void init3() {
        log.debug("初始化3");
    }
}

输出结果:

[DEBUG] 21:14:58.781 [main] com.xc.a07.Bean1                    - 初始化1 
[DEBUG] 21:14:58.781 [main] com.xc.a07.Bean1                    - 初始化2 
[DEBUG] 21:14:58.782 [main] com.xc.a07.Bean1                    - 初始化3

执行顺序: @PostConstruct > InitializingBean接口 > @Bean属性initMethod

2、三种Bean销毁方式

1. @Bean注解destroyMethod属性指定销毁方法

@Bean(destroyMethod = "destroy3")
public Bean2 bean2() {
    return new Bean2();
}

2. 实现DisposableBean接口
3. @PreDestroy注解属性指定初始化方法

@Slf4j
public class Bean2 implements DisposableBean {

    @PreDestroy
    public void destroy1() {
        log.debug("销毁1");
    }

    @Override
    public void destroy2() throws Exception {
        log.debug("销毁2");
    }

    public void destroy3() {
        log.debug("销毁3");
    }
}

输出结果:

[DEBUG] 21:15:02.451 [main] com.xc.a07.Bean2                    - 销毁1 
[DEBUG] 21:15:02.451 [main] com.xc.a07.Bean2                    - 销毁2 
[DEBUG] 21:15:02.451 [main] com.xc.a07.Bean2                    - 销毁3 

执行顺序: @PreDestroy> DisposableBean接口 > @Bean属性destroyMethod

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1036164.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号