最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring中Bean的生命周期實例解析

 更新時間:2023年12月01日 08:41:11   作者:MC-閏土  
這篇文章主要介紹了Spring中Bean的生命周期實例解析,我們定義一個自定義的MySpringBeanPostProcessor,主要是重寫了BeanPostProcessor接口的postProcessBeforeInitialization與postProcessAfterInitialization方法,需要的朋友可以參考下

Bean的生命周期

spring bean的生命周期官方的流程圖如下:

接下來 我們用代碼驗證一下是否如圖所愿:

首先定義一個testBean

import org.springframework.beans.BeansException;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.BeanFactoryAware;
import org.springframework.beans.factory.BeanNameAware;
import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
/**
 *
 * @author runtu
 * @version TestBean, v2.0 2019/12/13 9:19
 **/
public class TestBean implements BeanNameAware, BeanFactoryAware, ApplicationContextAware,
                      InitializingBean, DisposableBean {
    public TestBean() {
        System.out.println("=====================構(gòu)造方法========================");
    }
    @Override
    public void setBeanName(String s) {
        System.out.println("=====================BeanNameAware========================");
    }
    @Override
    public void setBeanFactory(BeanFactory beanFactory) throws BeansException {
        System.out.println("=====================BeanFactoryAware========================");
    }
    @Override
    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
        System.out.println("=====================ApplicationContextAware========================");
    }
    @Override
    public void afterPropertiesSet() {
        System.out.println("=====================InitializingBean========================");
    }
    @Override
    public void destroy() {
        System.out.println("=====================DisposableBean========================");
    }
    public void init() {
        System.out.println("=====================init========================");
    }
    public void shutdown() {
        System.out.println("=====================shutdown========================");
    }
}

再定義一個自定義的MySpringBeanPostProcessor,主要是重寫了BeanPostProcessor接口的postProcessBeforeInitialization與postProcessAfterInitialization方法。

import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanPostProcessor;
import org.springframework.stereotype.Component;
/**
 *
 * @author runtu
 * @version MySpringBeanPostProcessor, v2.0 2019/12/13 9:25
 **/
@Component
public class MySpringBeanPostProcessor implements BeanPostProcessor {
    @Override
    public Object postProcessBeforeInitialization(Object bean,
                                                  String beanName) throws BeansException {
        if (bean instanceof TestBean) {
            System.out.println(
                "=====================postProcessBeforeInitialization========================");
        }
        return bean;
    }
    @Override
    public Object postProcessAfterInitialization(Object bean,
                                                 String beanName) throws BeansException {
        if (bean instanceof TestBean) {
            System.out.println(
                "=====================postProcessAfterInitialization========================");
        }
        return bean;
    }
}

此處我工程為springboot,把TestBean注入之后,啟動項目

@Bean(initMethod = "init", destroyMethod = "shutdown")
public TestBean testBean() {
     return new TestBean();
}

把一些無關(guān)的日志剃掉之后,控制臺打印結(jié)果如下:

# 啟動程序之后控制臺依次打?。?br />=====================構(gòu)造方法========================
=====================BeanNameAware========================
=====================BeanFactoryAware========================
=====================ApplicationContextAware========================
=====================postProcessBeforeInitialization========================
=====================InitializingBean========================
=====================init========================
=====================postProcessAfterInitialization========================
 # 停止程序之后依次打印:
=====================DisposableBean========================
=====================shutdown========================

到此這篇關(guān)于Spring中Bean的生命周期實例解析的文章就介紹到這了,更多相關(guān)Bean的生命周期內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 關(guān)于java.lang.NumberFormatException: null的問題及解決

    關(guān)于java.lang.NumberFormatException: null的問題及解決

    這篇文章主要介紹了關(guān)于java.lang.NumberFormatException: null的問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • github上的java項目怎么運行(面向小白)

    github上的java項目怎么運行(面向小白)

    這篇文章主要介紹了github上的java項目怎么運行(面向小白),今天從github把我以前寫的一個小demo下載下來了,第一次下載項目,摸索了一個多小時,才運行起來,需要的朋友可以參考下
    2019-06-06
  • Spring Boot 日志功能深度解析與實踐指南

    Spring Boot 日志功能深度解析與實踐指南

    本文詳細(xì)介紹了SpringBoot的日志功能,包括默認(rèn)日志框架Logback,日志級別配置,日志格式自定義,日志文件輸出,日志歸檔與清理,自定義日志配置,與其他日志框架的集成以及日志性能優(yōu)化,通過結(jié)合實際場景,提供了詳細(xì)的配置與實踐指南,感興趣的朋友一起看看吧
    2025-01-01
  • 詳解快速排序算法中的區(qū)間劃分法及Java實現(xiàn)示例

    詳解快速排序算法中的區(qū)間劃分法及Java實現(xiàn)示例

    這篇文章主要介紹了詳解快速排序算法中的區(qū)間劃分法及Java實現(xiàn)示例,文中分別介紹了快排時兩種區(qū)間劃分的思路,需要的朋友可以參考下
    2016-04-04
  • JavaWeb實現(xiàn)表單提交的示例詳解

    JavaWeb實現(xiàn)表單提交的示例詳解

    這篇文章主要介紹了如何利用JavaWeb實現(xiàn)表單提交功能,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)JavaWeb有一定幫助,感興趣的可以了解一下
    2022-03-03
  • SpringBoot中使用AOP切面編程實現(xiàn)登錄攔截功能

    SpringBoot中使用AOP切面編程實現(xiàn)登錄攔截功能

    本文介紹了如何使用AOP切面編程實現(xiàn)Spring Boot中的登錄攔截,通過實例代碼給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧
    2024-12-12
  • SpringBoot中如何統(tǒng)一接口返回與全局異常處理詳解

    SpringBoot中如何統(tǒng)一接口返回與全局異常處理詳解

    全局異常處理是個比較重要的功能,一般在項目里都會用到,這篇文章主要給大家介紹了關(guān)于SpringBoot中如何統(tǒng)一接口返回與全局異常處理的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2021-09-09
  • 在MyBatis中開啟SQL日志的具體步驟

    在MyBatis中開啟SQL日志的具體步驟

    文章詳細(xì)介紹了在原生MyBatis和SpringBoot中開啟MyBatis日志的具體步驟,包括引入日志依賴、配置日志文件和設(shè)置日志級別,文章還提供了對比總結(jié)和常見問題解答,幫助讀者更好地理解和配置MyBatis日志,需要的朋友可以參考下
    2025-11-11
  • JavaEE idea的smart tomcat插件使用

    JavaEE idea的smart tomcat插件使用

    這篇文章主要介紹了JavaEE idea的smart tomcat插件使用,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-09-09
  • Java語言字典序排序算法解析及代碼示例

    Java語言字典序排序算法解析及代碼示例

    這篇文章主要介紹了Java語言字典序排序算法解析及代碼示例,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01

最新評論

上蔡县| 竹溪县| 望谟县| 静安区| 永嘉县| 睢宁县| 敦化市| 嘉兴市| 永济市| 石柱| 高平市| 扬州市| 蒙城县| 阳江市| 湖北省| 武安市| 赫章县| 建宁县| 旬阳县| 长葛市| 和顺县| 县级市| 沂南县| 甘肃省| 宁化县| 普格县| 阿鲁科尔沁旗| 清原| 汝南县| 元朗区| 松江区| 九龙县| 博野县| 平度市| 财经| 开封市| 昌江| 垣曲县| 龙南县| 枣阳市| 泾阳县|