欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringIOC容器Bean初始化和銷毀回調(diào)方式

 更新時間:2025年05月09日 08:32:51   作者:terrybg  
這篇文章主要介紹了SpringIOC容器Bean初始化和銷毀回調(diào)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

前言

Spring Bean 的生命周期:init(初始化回調(diào))、destory(銷毀回調(diào)),在Spring中提供了四種方式來設(shè)置bean生命周期的回調(diào):

  • 1.@Bean指定初始化和銷毀方法
  • 2.實現(xiàn)接口
  • 3.使用JSR250
  • 4.后置處理器接口

使用場景:

在Bean初始化之后主動觸發(fā)事件。如配置類的參數(shù)。

1.@Bean指定初始化和銷毀方法

public class Phone {
 
    private String name;
 
    private int money;
    //get set
    public Phone() {
        super();
        System.out.println("實例化phone");
    }
 
    public void init(){
        System.out.println("初始化方法");
    }
 
    public void destory(){
        System.out.println("銷毀方法");
    }
}
@Bean(initMethod = "init",destroyMethod = "destory")
public Phone phone(){                              
    return new Phone();                            
}     
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(BeanConfig5.class);
context.close();            

打印輸出:

實例化phone
初始化方法
銷毀方法

2.實現(xiàn)接口

通過讓Bean實現(xiàn)InitializingBean(定義初始化邏輯),DisposableBean(定義銷毀邏輯)接口

public class Car implements InitializingBean, DisposableBean {
 
    public void afterPropertiesSet() throws Exception {
        System.out.println("對象初始化后");
    }
 
    public void destroy() throws Exception {
        System.out.println("對象銷毀");
    }
 
    public Car(){
        System.out.println("對象初始化中");
    }
 
}
 

打印輸出:

對象初始化中
對象初始化后
對象銷毀

3.使用JSR250

通過在方法上定義@PostConstruct(對象初始化之后)和@PreDestroy(對象銷毀)注解

public class Cat{
 
    public Cat(){
        System.out.println("對象初始化");
    }
 
    @PostConstruct
    public void init(){
        System.out.println("對象初始化之后");
    }
 
    @PreDestroy
    public void destory(){
        System.out.println("對象銷毀");
    }
 
}

打印輸出:

對象初始化
對象初始化之后
對象銷毀

4.后置處理器接口

public class Dog implements BeanPostProcessor{
 
    public Dog(){
        System.out.println("對象初始化");
    }
 
    public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
        System.out.println(beanName+"對象初始化之前");
        return bean;
    }
 
    public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
        System.out.println(beanName+"對象初始化之后");
        return bean;
    }
 
}

對象初始化
org.springframework.context.event.internalEventListenerProcessor對象初始化之前
org.springframework.context.event.internalEventListenerProcessor對象初始化之后
org.springframework.context.event.internalEventListenerFactory對象初始化之前
org.springframework.context.event.internalEventListenerFactory對象初始化之后

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java 中Comparable和Comparator區(qū)別比較

    Java 中Comparable和Comparator區(qū)別比較

    本文,先介紹Comparable 和Comparator兩個接口,以及它們的差異;接著,通過示例,對它們的使用方法進(jìn)行說明
    2013-09-09
  • springBoot如何動態(tài)加載資源文件

    springBoot如何動態(tài)加載資源文件

    這篇文章主要介紹了springBoot如何動態(tài)加載資源文件,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • SpringBoot加載bean的八種方式總結(jié)

    SpringBoot加載bean的八種方式總結(jié)

    springboot難免要用到bean,但這些bean如何導(dǎo)入,對于初學(xué)者時間頭疼的事,下面這篇文章主要給大家介紹了關(guān)于SpringBoot加載bean的八種方式,需要的朋友可以參考下
    2022-10-10
  • Springboot傳輸數(shù)據(jù)時日期格式化問題

    Springboot傳輸數(shù)據(jù)時日期格式化問題

    這篇文章主要介紹了Springboot傳輸數(shù)據(jù)時日期格式化問題,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-09-09
  • Java中使用instanceof判斷對象類型的示例

    Java中使用instanceof判斷對象類型的示例

    在List<Object>中遍歷Object時,先判斷類型,再定向轉(zhuǎn)換,本文給大家介紹Java中使用instanceof判斷對象類型,感興趣的朋友跟隨小編一起看看吧
    2023-08-08
  • Java雜談之合格程序員一定要會閱讀別人的源碼

    Java雜談之合格程序員一定要會閱讀別人的源碼

    閱讀別人的代碼作為開發(fā)人員是一件經(jīng)常要做的事情。一個是學(xué)習(xí)新的編程語言的時候通過閱讀別人的代碼是一個最好的學(xué)習(xí)方法,另外是積累編程經(jīng)驗
    2021-09-09
  • java 讀取文件路徑空格、

    java 讀取文件路徑空格、"+"和中文的處理方法

    今天小編就為大家分享一篇java 讀取文件路徑空格、"+"和中文的處理方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • Gateway+Swagger2配置聚合文檔方式

    Gateway+Swagger2配置聚合文檔方式

    這篇文章主要介紹了Gateway+Swagger2配置聚合文檔方式,具有很好的參考價值,希望對大家有所幫助。
    2023-03-03
  • idea如何指定MainClass

    idea如何指定MainClass

    文章介紹了如何在IntelliJ IDEA中設(shè)置Java后臺測試程序的MainClass,并分享了設(shè)置JDK版本和Project language level的方法
    2024-11-11
  • SpringMVC 通過commons-fileupload實現(xiàn)文件上傳功能

    SpringMVC 通過commons-fileupload實現(xiàn)文件上傳功能

    這篇文章主要介紹了SpringMVC 通過commons-fileupload實現(xiàn)文件上傳,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02

最新評論