系列十六、bean有哪些生命周期的回调方法?有哪几种实现方式?

一、概述

bean的生命周期的回调方法主要分两种,一种是初始化时进行调用,另外一种是销毁时进行调用。但是不管是初始化还是销毁,都对应着三种方式。

二、实现方式

2.1、注解方式

java 复制代码
@PostConstruct + @PreDestroy
java 复制代码
@Component
public class UserService {

    public UserService() {
        System.out.println("UserService的构造方法执行了...");
    }

    @PostConstruct
    public void init() {
        System.out.println("UserService 初始化...");
    }

    @PreDestroy
    public void destroy () {
        System.out.println("UserService 销毁...");
    }

}

2.2、实现接口方式

java 复制代码
@Component
public class UserService2 implements InitializingBean, DisposableBean {

    public UserService2() {
        System.out.println("UserService2的构造方法执行了...");
    }

    @Override
    public void afterPropertiesSet() throws Exception {
        System.out.println("UserService2 初始化...");
    }

    @Override
    public void destroy() throws Exception {
        System.out.println("UserService2 销毁...");
    }
}

2.3、通过指定initMethod和destoryMethod方式

java 复制代码
public class UserService3 {

    public UserService3() {
        System.out.println("UserService3的构造方法执行了...");
    }

    public void init() {
        System.out.println("UserService3 初始化...");
    }

    public void destroy() {
        System.out.println("UserService3 销毁...");
    }

}
java 复制代码
@Configuration
@ComponentScan(basePackages = "org.star")
public class MySpringConfig {

    @Bean(initMethod = "init",destroyMethod = "destroy")
    public UserService3 userService3() {
        return new UserService3();
    }

}
相关推荐
哈基米喜欢哈哈哈9 分钟前
低版本的JVM遇到高版本的class字节码是否会报错
java·jvm
2351613 分钟前
【并发编程】详解volatile
java·开发语言·jvm·分布式·后端·并发编程·原理
折翼的恶魔21 分钟前
前端学习之样式设计
前端·css·学习
IT_陈寒39 分钟前
JavaScript性能优化:3个被低估的V8引擎技巧让你的代码提速50%
前端·人工智能·后端
洛小豆40 分钟前
java 中 char 类型变量能不能储存一个中文的汉字,为什么?
java·后端·面试
云飞云共享云桌面1 小时前
SolidWorks服务器多人使用方案
大数据·运维·服务器·前端·网络·电脑·制造
爱吃烤鸡翅的酸菜鱼1 小时前
从数据库直连到缓存预热:城市列表查询的性能优化全流程
java·数据库·后端·spring·个人开发
Algebraaaaa1 小时前
Qt中的字符串宏 | 编译期检查和运行期检查 | Qt信号与槽connect写法
开发语言·c++·qt
Red Car1 小时前
javascript 性能优化实例一则
开发语言·javascript·ecmascript
友友马1 小时前
『 QT 』Hello World控件实现指南
开发语言·qt