原文: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. 标准模板库(STL)学习指南之sort排序

    对于程序员来说,数据结构是必修的一门课.从查找到排序,从链表到二叉树,几乎所有的算法和原理都需要理解,理解不了也要死记硬背下来.幸运的是这些理论都已经比较成熟,算法也基本固定下来,不需要你再去花费心思 ...

  2. DevExpress源码编译总结

    独家提供完整可编译sln文件,本篇文章内容包括基础知识(GAC.程序集强签名.友元程序集).编译过程.注册GAC.添加工具箱.多语言支持.运行时和设计时调试 源码地址  链接:http://pan.b ...

  3. Azure自动化部署服务 (1)

    Azure中已经发布了自动化部署服务的PaaS功能. 本文将介绍自动化服务Automation初始化过程. 在Azure Management Portal上左边可以看到Azure的各种服务,其中一项 ...

  4. Java常见设计模式之代理模式

    指由一个代理主题来操作真实主题,真实主题执行具体的业务操作,而代理主题负责其它相关业务的处理.比如生活中的通过代理访问网络,客户通过网络代理连接网络(具体业务),由代理服务器完成用户权限和访问限制等与 ...

  5. Java标签引起的陷阱

    请看下面的代码,请问下面的代码是否能够通过编译: package com.yonyou.test; /** * 测试类 * @author 小浩 * @创建日期 2015-3-2 */ public ...

  6. 【jQuery】jquery.metadata.js验证失效

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  7. docker-machine create --driver virtualbox myvm1 创建失败

    1. 问题描述 docker-machine create --driver virtualbox myvm1 安装完 virtualbox 后,无法创建. 输出内容为: Running pre-cr ...

  8. 菜鸟学Nhibernate 之路---(1)

    首先说一下我为什么要学这个Nhibernate,现在在公司做项目后台的逻辑层都是用动软生成的简单三层,搞来搞去都是这些东西,代码冗余量很大,每个类方法基本上都一样,真是纯正的码农,虽然后来我也尝试使用 ...

  9. ORACLE AWR报告生成步骤

    ORACLE AWR报告生成步骤 (以PL/SQL中命令窗口为例) 1.sqlplus或plsql的commod窗口(命令窗口)运行命令 @D:\oracle\product\10.2.0\db_1\ ...

  10. CentOS 7 配置 mariadb

    一.安装mariadb :  yum groupinstall  mariadb  mariadb-client -y 二.启动(设置开机启动)服务 : systemctl  start (enabl ...