Sspring bean被初始化載入2次

2022-08-22 13:51:16 字數 1252 閱讀 1217

sspring bean被初始化載入2次

spring框架的web專案時,啟動的時候發現某個bean被載入了兩次,比如使用schedulingconfigurer或者使用@postconstruct的方法都被執行了2次

web.xml 配置

<

context-param

>

<

param-name

>contextconfiglocation

param-name

>

<

param-value

>

/web-inf/dispatcher-servlet.xml

param-value

>

context-param

>

<

listener

>

<

listener-class

>org.springframework.web.context.contextloaderlistener

listener-class

>

listener

>

<

servlet

>

<

servlet-name

>dispatcher

servlet-name

>

<

servlet-class

>org.springframework.web.servlet.dispatcherservlet

servlet-class

>

<

load-on-startup

>1

load-on-startup

>

servlet

>

1、問題: contextloaderlistener和dispatcherservlet,他們都可以引入spring,而且每個引入都會例項化一次bean。如果把兩個引入方式配置到同乙個檔案,那麼就會導致乙個bean被例項化兩次。

即:contextloaderlistener載入了一次dispatcher-servlet.xml, 而dispatcherservlet又會預設載入/web-inf下面的-servlet.xml配置檔案。

2、處理方式:把contextloaderlistener 注釋掉,使其contextloaderlistener和dispatcher-servlet不用重複載入同乙個配置檔案即可

初始化 指定初始化

id alloc 物件的誕生過程,主要是從作業系統獲得一塊足夠大的記憶體,以存放該類的全部例項變數,並將其指定為存放記憶體物件的實力變數的位置。alloc方法同時將這塊記憶體全部設定為0。結果是 bool變數初始化為no,所有的int型別變數為0,float變數為0.0,所有的指標為nil.obje...

初始化 1 預設初始化 列表初始化

初始化的基本概念 事實 初始化和賦值是兩個完全不同的操作。初始化,是建立變數時賦予其乙個初始值。賦值,是把物件的當前值擦除,用乙個新值代替。列表初始化 p39 作為c 11新標準的一部分,用花括號 來初始化變數得到了全面應用。出於某些原因,這種初始化的方式叫做列表初始化。現在,無論是初始化物件還是某...

初始化 MyBatis初始化之載入初始化

在mybatis初始化過程中,大致會有以下幾個步驟 1.建立configuration全域性配置物件,會往typealiasregistry別名註冊中心新增mybatis需要用到的相關類,並設定預設的語言驅動類為xmllanguagedriver 3.構建defaultsqlsessionfacto...