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

@PostConstruct在項目啟動時被執(zhí)行兩次或多次的原因及分析

 更新時間:2021年08月03日 11:33:22   作者:yinyan1314  
這篇文章主要介紹了@PostConstruct在項目啟動時被執(zhí)行兩次或多次的原因及分析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

@PostConstruct項目啟動時被執(zhí)行兩次或多次

原因

是因為文件對@PostConstruct所在類掃描了兩次!

首先排查,帶有掃描包配置(context:component-scan)的同一spring文件,是否在web.xml配置中,初始化就執(zhí)行的那種配置(比如context-param,init-param),被重復(fù)的配置了兩遍。

然后在排查,web.xml中配置了初始化配置的多個spring文件是否都掃描了@PostConstruct所在類的所在包!常見SpringMVC文件的掃描路徑中也包含了@PostConstruct所在類的所在包。

@PostConstruct執(zhí)行順序

最近看到@PostConstruct這個注解,思考一個問題,這個注釋是修飾初始化之后需要執(zhí)行的方法,那么@PostConstruct和@Autowired、構(gòu)造函數(shù)的執(zhí)行順序是什么呢?

寫了段代碼驗證一下

@Service
public class BeanA {
    @Autowired
    private BeanB beanB;
    public BeanA() {
        System.out.println("這是Bean A 的構(gòu)造方法");
    }
    @PostConstruct
    private void init() {
        System.out.println("這是BeanA的 init 方法");
        beanB.testB();
    }
}
@Service
public class BeanB {
    @PostConstruct
    private void init() {
        System.out.println("這是BeanB 的init 方法");
    }
    public BeanB() {
        System.out.println("這是Bean B的 構(gòu)造方法");
    }
    void testB() {
        System.out.println("這是Bean B 的 testB 方法");
    }
}

啟動后輸出:

這是Bean A 的構(gòu)造方法
這是Bean B的 構(gòu)造方法
這是BeanB 的init 方法
這是BeanA的 init 方法
這是Bean B 的 testB 方法

所以得到結(jié)論: 構(gòu)造方法 > @Autowired > @PostConstruct

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

相關(guān)文章

  • Java Web項目中使用Socket通信多線程、長連接的方法

    Java Web項目中使用Socket通信多線程、長連接的方法

    很多時候在javaweb項目中我們需要用到Socket通信來實現(xiàn)功能,在web中使用Socket我們需要建立一個監(jiān)聽程序,在程序啟動時,啟動socket監(jiān)聽。接下來通過本文給大家介紹Java Web項目中使用Socket通信多線程、長連接的方法,感興趣的朋友一起學習
    2016-04-04
  • IntelliJ IDEA報錯Error:java: Compilation failed: internal java compiler error的解決辦法

    IntelliJ IDEA報錯Error:java: Compilation failed: internal java

    今天小編就為大家分享一篇關(guān)于IntelliJ IDEA報錯Error:java: Compilation failed: internal java compiler error的解決辦法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • Spring Boot整合JWT的實現(xiàn)步驟

    Spring Boot整合JWT的實現(xiàn)步驟

    本文主要介紹了Spring Boot整合JWT,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • 詳解spring mvc 請求轉(zhuǎn)發(fā)和重定向

    詳解spring mvc 請求轉(zhuǎn)發(fā)和重定向

    這篇文章主要介紹了詳解spring mvc 請求轉(zhuǎn)發(fā)和重定向,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02
  • Java操作壓縮包解壓過程詳解

    Java操作壓縮包解壓過程詳解

    這篇文章主要介紹了Java操作壓縮包解壓過程,項目開發(fā)中,總會遇到解壓縮文件的時候,比如用戶下載多個文件時,服務(wù)端可以將多個文件壓縮成一個文件,用戶上傳資料時,允許上傳壓縮文件,服務(wù)端進行解壓讀取每一個文件,使用場景是很多的,下面來詳細講解,需要的朋友可以參考下
    2024-10-10
  • Java中的線程生命周期核心概念

    Java中的線程生命周期核心概念

    這篇文章主要介紹了Java中的線程生命周期核心概念,通過使用一個快速的圖解展開文章內(nèi)容,需要的小伙伴可以參考一下
    2022-06-06
  • Go Java算法之外觀數(shù)列實現(xiàn)方法示例詳解

    Go Java算法之外觀數(shù)列實現(xiàn)方法示例詳解

    這篇文章主要為大家介紹了Go Java算法外觀數(shù)列實現(xiàn)的方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • java實現(xiàn)門禁系統(tǒng)

    java實現(xiàn)門禁系統(tǒng)

    這篇文章主要為大家詳細介紹了java實現(xiàn)門禁系統(tǒng)的實現(xiàn)方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • java多線程之鐵路售票系統(tǒng)

    java多線程之鐵路售票系統(tǒng)

    這篇文章主要為大家詳細介紹了java多線程之鐵路售票系統(tǒng),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • Java中的線程安全問題詳細解析

    Java中的線程安全問題詳細解析

    這篇文章主要介紹了Java中的線程安全問題詳細解析,線程安全是如果有多個線程在同時運行,而這些線程可能會同時運行這段代碼,程序每次運行結(jié)果和單線程運行的結(jié)果是一樣的,而且其他的變量的值也和預(yù)期的是一樣的,此時我們就稱之為是線程安全的,需要的朋友可以參考下
    2023-11-11

最新評論

邢台市| 图木舒克市| 昆山市| 达日县| 福鼎市| 嘉定区| 武鸣县| 连江县| 九江市| 松溪县| 上高县| 平原县| 车致| 辽宁省| 镇赉县| 扎赉特旗| 葵青区| 钟祥市| 屏边| 玉树县| 丽江市| 咸宁市| 昌平区| 长乐市| 临猗县| 罗山县| 靖远县| 股票| 辰溪县| 尖扎县| 海盐县| 东丽区| 长宁区| 新平| 余江县| 宣恩县| 乐都县| 柳河县| 濉溪县| 襄樊市| 新郑市|