首页 > 其他分享 >4_Spring Bean的初始化和销毁

4_Spring Bean的初始化和销毁

时间:2024-06-10 13:54:53浏览次数:19  
标签:初始化 销毁 Spring void System Bean public

Spring Bean的初始化和销毁

1. Bean 的初始化执行流程

Spring 提供了多种初始化和销毁的方法

编写相关Bean代码:

public class Bean1 implements InitializingBean {
    @PostConstruct
    public void init1(){
        System.out.println("初始化1");
    }

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

    public void int3(){
        System.out.println("初始化3");
    }
}

编写主方法测试:

@SpringBootApplication
public class A07Application {
    public static void main(String[] args) {
        ConfigurableApplicationContext context = SpringApplication.run(A07Application.class, args);
        context.close();
    }

    @Bean(initMethod = "init3") // 指定初始化方法
    public Bean1 bean1(){
        return new Bean1();
    }
}
初始化1
初始化2
初始化3

在初始化的时候首先会执行由基于扩展功能的@PostConstruct注解的方法,接着就是Spring内置接口的初始化方法,最后就是由@Bean注解里指定的初始化方法

2. Bean 的销毁执行流程

接下来看销毁方法:

是首先编写一个Bean:

public class Bean2 implements DisposableBean {

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

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

    }

    public void destroy3(){
        System.out.println("销毁3");
    }
}

编写主方法:

@SpringBootApplication
public class A07Application {
    public static void main(String[] args) {
        ConfigurableApplicationContext context = SpringApplication.run(A07Application.class, args);
        context.close();
    }

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

运行结果如下:

销毁1
销毁2
销毁3

在销毁Bean的时候首先会执行基于扩展功能的@PreDestroy指定的方法,其次是Spring内置接口功能的销毁,最后执行的是基于@Bean注解里面指定的销毁方法。

标签:初始化,销毁,Spring,void,System,Bean,public
From: https://www.cnblogs.com/lilyflower/p/18240625

相关文章

  • 2_Bean的生命周期和常见的后处理器
    1.SpringBean生命周期各个阶段首先编写一个Bean:@ComponentpublicclassLifeCycleBean{publicLifeCycleBean(){System.out.println("Bean构造");}@Autowiredpublicvoidautowire(@Value("${JAVA_HOME}")StringjavaHome){......
  • SpringBoot个人网盘系统-计算机毕业设计源码92922
    摘 要随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势或改善自身的缺点,互联网的发展文件管理带来了福音。个人网盘系统是以实际运用为开发背景,运用软件工程原理和开发方法,采用Java技术构建的一个线上系统。整个......
  • springboot高校运动会信息管理系统设计与实现-计算机毕业设计源码92968
    摘 要本论文介绍了一个高校运动会信息管理系统的设计和实现过程。首先是高校运动会的需求分析和可行性分析,通过比较运动会的各个工作流程,确定了系统的数据流程和数据库结构,然后介绍了高校运动会信息管理系统开发所使用的软件开发工具,最后描述了系统的详细设计与实现。本系统......
  • Spring常用注解,自动扫描装配Bean
    1引入context命名空间(在Spring的配置文件中),配置文件如下:Xml代码xmlns:context="http://www.springframework.org/schema/context"http://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-2.5.xsd......
  • 基于SpringBoot+Vue的项目申报管理系统(源码+lw+部署文档+讲解等)
    文章目录前言详细视频演示项目运行截图技术框架后端采用SpringBoot框架前端框架Vue可行性分析系统测试系统测试的目的系统功能测试数据库表设计代码参考数据库脚本为什么选择我?获取源码前言......
  • 基于SpringBoot+Vue的小型医院医疗设备管理系统(源码+lw+部署文档+讲解等)
    文章目录前言详细视频演示项目运行截图技术框架后端采用SpringBoot框架前端框架Vue可行性分析系统测试系统测试的目的系统功能测试数据库表设计代码参考数据库脚本为什么选择我?获取源码前言......
  • springboot网上商城购物系统
    获取源码:链接:https://pan.baidu.com/s/1EpIeQfssLG7mfWDrRG0fXA?pwd=gwsv 提取码:gwsv2.1 B/S架构 B/S结构的特点也非常多,例如在很多浏览器中都可以做出信号请求。并且可以适当的减轻用户的工作量,通过对客户端安装或者是配置少量的运行软件就能够逐步减少用户的工作......
  • Springboot计算机毕业设计饮品点单系统小程序【附源码】开题+论文+mysql+程序+部署
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着消费模式的转变和移动互联网的普及,饮品行业面临着巨大的发展机遇。传统的饮品点单方式往往效率低下,且无法满足消费者对个性化、便捷性服务的需求......
  • Springboot计算机毕业设计饮品店点单小程序【附源码】开题+论文+mysql+程序+部署
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景在快节奏的现代生活中,饮品店因其便捷、时尚的特点,成为了人们日常生活中不可或缺的一部分。然而,传统的饮品店点单方式往往存在效率低下、服务体验不佳......
  • “【SpringBoot】SpringBoot整合RabbitMQ消息中间件,实现延迟队列和死信队列”文章说了
    在SpringBoot中整合RabbitMQ以实现延迟队列和死信队列的功能,主要涉及以下几个关键步骤:1.引入依赖:首先,在项目的pom.xml文件中添加RabbitMQ的依赖。2.配置RabbitMQ:在application.properties或application.yml文件中配置RabbitMQ的相关参数,包括连接信息、交换机名称、队列名......