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

@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)文章

  • Eclipse中@SpringBootTest注解報紅的解決方案

    Eclipse中@SpringBootTest注解報紅的解決方案

    這篇文章主要介紹了Eclipse中@SpringBootTest注解報紅的解決方案,文中給出了原因分析和解決方案,并通過圖文結(jié)合的方式介紹的非常詳細,需要的朋友可以參考下
    2024-03-03
  • SpringBoot+websocket實現(xiàn)消息對話功能

    SpringBoot+websocket實現(xiàn)消息對話功能

    WebSocket是一種在Web應(yīng)用程序中實現(xiàn)實時雙向通信的技術(shù),它可以用于在線游戲、在線聊天、推送通知、實時監(jiān)控等,并且比傳統(tǒng)的輪詢技術(shù)更加高效和可靠,本文就給大家介紹基于SpringBoot+websocket實現(xiàn)消息對話功能,感興趣的小伙伴可以自己動手試一試
    2023-09-09
  • 理解JPA注解@GeneratedValue的使用方法

    理解JPA注解@GeneratedValue的使用方法

    這篇文章主要介紹了理解JPA注解@GeneratedValue的使用方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07
  • Maven工程搭建spring boot+spring mvc+JPA的示例

    Maven工程搭建spring boot+spring mvc+JPA的示例

    本篇文章主要介紹了Maven工程搭建spring boot+spring mvc+JPA的示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-01-01
  • 詳解關(guān)于mybatis-plus中Service和Mapper的分析

    詳解關(guān)于mybatis-plus中Service和Mapper的分析

    這篇文章主要介紹了詳解關(guān)于mybatis-plus中Service和Mapper的分析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • java web response提供文件下載功能的實例講解

    java web response提供文件下載功能的實例講解

    下面小編就為大家分享一篇java web response提供文件下載功能的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • 深入理解Hibernate中的懶加載異常及解決方法

    深入理解Hibernate中的懶加載異常及解決方法

    這篇文章主要為大家介紹了深入理解Hibernate中的懶加載異常及解決方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪<BR>
    2023-10-10
  • 基于Spring AOP proxyTargetClass的行為表現(xiàn)總結(jié)

    基于Spring AOP proxyTargetClass的行為表現(xiàn)總結(jié)

    這篇文章主要介紹了Spring AOP proxyTargetClass的行為表現(xiàn)總結(jié),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • Java如何實現(xiàn)定時任務(wù)

    Java如何實現(xiàn)定時任務(wù)

    這篇文章主要介紹了Java如何實現(xiàn)定時任務(wù),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • Mybatis中SqlSession下的四大對象之執(zhí)行器(executor)

    Mybatis中SqlSession下的四大對象之執(zhí)行器(executor)

    mybatis中sqlsession下的四大對象是指:executor, statementHandler,parameterHandler,resultHandler對象。這篇文章主要介紹了Mybatis中SqlSession下的四大對象之執(zhí)行器(executor),需要的朋友可以參考下
    2019-04-04

最新評論