原文:https://blog.csdn.net/z3133464733/article/details/79189699

------------------------------------------------------------------------------------------------------------------------------------------

Spring @PostConstruct和@PreDestroy实例
https://www.cnblogs.com/soundcode/p/6367416.html

Spring Bean InitializingBean和DisposableBean实例
https://www.cnblogs.com/soundcode/p/6367410.html

Spring中的初始化InitializingBean接口和DisposableBean接口
https://blog.csdn.net/chenwiehuang/article/details/52594074

------------------------------------------------------------------------------------------------------------------------------------------

1.java形式的配置方式:使用@bean的initMethod和destorymethod等同于init-method、destory-method

java--Bean(还未交给spring管理)

package com.zh.ch2.prepost;
/**
* Bean的初始化和销毁
* 1.java形式的配置方式:使用@bean的initMethod和destorymethod等同于init-method、destory-method
* 2.注解方式:利用-250的@PostConstruct和@PreDestory
* @author Hiiso
*
*/
public class BeanWayService {
public void init(){
System.out.println("@Bean-init-method//1在构造函数执行完之后执行");
}
public BeanWayService() {
super();
System.out.println("初始化构造函数-BeanWayService");
}
public void destroy(){
System.out.println("@Bean-destory-method//2在bean销毁之前执行");
}
}
2.注解方式:利用-250的@PostConstruct和@PreDestory
java--Bean(还未交给spring管理)

package com.zh.ch2.prepost;

import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;

public class JSR250WayService {
@PostConstruct //1在构造函数执行完之后执行
public void init(){
System.out.println("jsr250-init-method//1在构造函数执行完之后执行");
}
public JSR250WayService() {
super();
System.out.println("初始化构造函数-JSR250WayService");
}
@PreDestroy //2在bean销毁之前执行
public void destroy(){
System.out.println("jsr250-destory-method//2在bean销毁之前执行");
}

}
将bean 交由spring 管理
package com.zh.ch2.prepost;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

@Configuration
@ComponentScan("com.zh.ch1.prepost")
public class PrePostConfig {

@Bean(initMethod="init",destroyMethod="destroy") //1
BeanWayService beanWayService(){
return new BeanWayService();
}

@Bean
JSR250WayService jsr250WayService(){
return new JSR250WayService();
}

}
测试:

package com.zh.ch2.prepost;

import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class Main {

public static void main(String[] args) {
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(PrePostConfig.class);
context.close();
}

}
结果:(1-6为执行顺序)
1.初始化构造函数-BeanWayService

2.@Bean-init-method//1在构造函数执行完之后执行

3.初始化构造函数-JSR250WayService

4.jsr250-init-method//1在构造函数执行完之后执行

5.jsr250-destory-method//2在bean销毁之前执行

6.@Bean-destory-method//2在bean销毁之前执行

spring boot之 Bean的初始化和销毁(4)的更多相关文章

  1. 【Spring Framework】Spring注解设置Bean的初始化、销毁方法的方式

    bean的生命周期:创建---初始化---销毁. Spring中声明的Bean的初始化和销毁方法有3种方式: @Bean的注解的initMethod.DestroyMethod属性 bean实现Ini ...

  2. Spring Boot 中Bean的初始化后和销毁前的处理

    Spring 对Bean的生命周期的操作提供了支持.具体实现又两种方式 1.使用@Bean 中的 initMethod 和 destroyMethod2.注解方式 利用JSR-250 中的@PostC ...

  3. Spring Boot实战笔记(三)-- Spring常用配置(Bean的初始化和销毁、Profile)

    一.Bean的初始化和销毁 在我们的实际开发的时候,经常会遇到Bean在使用之前或之后做些必要的操作,Spring对Bean的生命周期操作提供了支持.在使用Java配置和注解配置下提供如下两种方式: ...

  4. Spring3实战第二章第一小节 Spring bean的初始化和销毁三种方式及优先级

    Spring bean的初始化和销毁有三种方式 通过实现 InitializingBean/DisposableBean 接口来定制初始化之后/销毁之前的操作方法: 优先级第二通过 <bean& ...

  5. 四、Srping之Bean的初始化和销毁

    Srping之Bean的初始化和销毁方法 通常,bean的初始化和销毁方法我们有三个地方可以入手,分别是: 自定义初始化,销毁方法 实现spring提供的InitializingBean(初始化逻辑) ...

  6. 12、生命周期-@Bean指定初始化和销毁方法

    12.生命周期-@Bean指定初始化和销毁方法 Bean的生命周期:创建->初始化->销毁 容器管理bean的生命周期 我们可以自定义初始方法和销毁方法,容器在bean进行到当期那生命周期 ...

  7. 在Spring Boot中加载初始化数据

    文章目录 依赖条件 data.sql文件 schema.sql 文件 @sql注解 @SqlConfig 注解 在Spring Boot中加载初始化数据 在Spring Boot中,Spring Bo ...

  8. Spring bean 实现初始化、销毁方法的方式及顺序

    Spring 允许 Bean 在初始化完成后以及销毁前执行特定的操作,常用方法有三种: 使用注解,在指定方法上加上@PostConstruct或@PreDestroy注解来制定该方法是在初始化之后还是 ...

  9. spring bean的初始化以及销毁

    spring bean初始化或销毁时执行某些方法,有很多使用场景.比如初始化时,启动bean中的线程池.销毁时释放资源,个人比较喜欢实现InitializingBean和 DisposableBean ...

随机推荐

  1. BZOJ1033:[ZJOI2008]杀蚂蚁

    我对模拟的理解:https://www.cnblogs.com/AKMer/p/9064018.html 题目传送门:https://www.lydsy.com/JudgeOnline/problem ...

  2. CCS V5 使用教程三:程序调试

    官网教程 新建调试工程 输入以下源码: #include <stdio.h> #include <c6x.h> ]; void main(void) { unsigned ; ...

  3. 【转】Pro Android学习笔记(二五):用户界面和控制(13):LinearLayout和TableLayout

    目录(?)[-] 布局Layout 线性布局LinearLayout 表格布局TableLayout 布局Layout Layout是容器,用于对所包含的view进行布局.layout是view的子类 ...

  4. Centos环境docker的正确安装及疑难杂症

    根据官方文档:https://docs.docker.com/install/linux/docker-ce/centos/搭建docker 1.卸载docker旧版本: sudo yum remov ...

  5. Hibernate---Hql查询2---

    hibernate.cfg.xml配置: <?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE hibernate-configurati ...

  6. Python-Redis的String操作

    Ubuntu安装Redis sch01ar@ubuntu:~$ sudo apt install redis-server sch01ar@ubuntu:~$ redis-server sch01ar ...

  7. nodejs调用delphi编写的dll

    公司的业务需要,nodejs要读取文件版本号. 同事要求我用delphi编写dll,以供nodejs调用,结果通过json返回. delphi代码如下: function GetFileInfo(AP ...

  8. Qt乱码解决办法(常量中有换行符)

    用记事本打开源代码,然后点另存为,utf-8,编码覆盖 QStringLiteral("打开相机")

  9. Eclipse/MyEclipse下如何Maven管理多个Mapreduce程序?(企业级水平)

    不多说,直接上干货! 如何在Maven官网下载历史版本 Eclipse下Maven新建项目.自动打依赖jar包(包含普通项目和Web项目) Eclipse下Maven新建Web项目index.jsp报 ...

  10. sharepoint SDDL 字符串包含无效的SID或无法转换的SID

    安装过程中出现以下错误 采用独立模式安装Sharepoint Server 2013/Foundation 2013,在进行配置向导的时候会碰到这样的错误 System.ArgumentExcepti ...