系列十六、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();
    }

}
相关推荐
HAPPY酷3 分钟前
C++ 和 Python 的“容器”对决:从万金油到核武器
开发语言·c++·python
大鹏说大话3 分钟前
告别 MSBuild 脚本混乱:用 C# 和 Nuke 构建清晰、可维护的现代化构建系统
开发语言·c#
却尘5 分钟前
Next.js 请求最佳实践 - vercel 2026一月发布指南
前端·react.js·next.js
ccnocare6 分钟前
浅浅看一下设计模式
前端
Lee川10 分钟前
🎬 从标签到屏幕:揭秘现代网页构建与适配之道
前端·面试
用户83071968408213 分钟前
Java IO三大模型(BIO/NIO/AIO)超详细总结
java
sheji341614 分钟前
【开题答辩全过程】以 基于SSM的花店销售管理系统为例,包含答辩的问题和答案
java
Mr_sun.25 分钟前
Day09——入退管理-入住-2
android·java·开发语言
MAGICIAN...36 分钟前
【java-软件设计原则】
java·开发语言
Ticnix37 分钟前
ECharts初始化、销毁、resize 适配组件封装(含完整封装代码)
前端·echarts