日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

spring中lazy-init详解

發(fā)布時(shí)間:2025/7/14 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 spring中lazy-init详解 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

ApplicationContext實(shí)現(xiàn)的默認(rèn)行為就是在啟動(dòng)時(shí)將所有singleton bean提前進(jìn)行實(shí)例化(也就是依賴注入)。提前實(shí)例化意味著作為初始化過程的一部分,ApplicationContext實(shí)例會(huì)創(chuàng)建并配置所有的singleton bean。通常情況下這是件好事,因?yàn)檫@樣在配置中的任何錯(cuò)誤就會(huì)即刻被發(fā)現(xiàn)(否則的話可能要花幾個(gè)小時(shí)甚至幾天)。

<bean id="testBean" class="com.fhx.TestBean">?該bean默認(rèn)的設(shè)置為:

<bean id="testBean" class="com.fhx.TestBean" lazy-init="false">??? lazy-init="false" 立退加載,?表示spring啟動(dòng)時(shí),立刻進(jìn)行實(shí)例化。

?(lazy-init 設(shè)置只對(duì)scop屬性為singleton的bean起作用)

?

有時(shí)候這種默認(rèn)處理可能并不是你想要的。如果你不想讓一個(gè)singleton bean在ApplicationContext實(shí)現(xiàn)在初始化時(shí)被提前實(shí)例化,那么可以將bean設(shè)置為延遲實(shí)例化。

<bean id="testBean" class="com.fhx.TestBean" lazy-init="true">,?? lazy-init="true"> 延遲加載?,設(shè)置為lazy的bean將不會(huì)在ApplicationContext啟動(dòng)時(shí)提前被實(shí)例化,而是在第一次向容器通過getBean索取bean時(shí)實(shí)例化的。

?

如果一個(gè)設(shè)置了立即加載的bean1,引用了一個(gè)延遲加載的bean2,那么bean1在容器啟動(dòng)時(shí)被實(shí)例化,而bean2由于被bean1引用,所以也被實(shí)例化,這種情況也符合延遲加載的bean在第一次調(diào)用時(shí)才被實(shí)例化的規(guī)則。

?

在容器層次中通過在<beans/>元素上使用'default-lazy-init'屬性來控制延遲初始化也是可能的。如下面的配置:

<beans default-lazy-init="true"><!-- no beans will be eagerly pre-instantiated... --></beans>

?

如果一個(gè)bean的scope屬性為scope=“pototype“時(shí),即使設(shè)置了lazy-init="false",容器啟動(dòng)時(shí)不實(shí)例化bean,而是調(diào)用getBean方法是實(shí)例化的

另外加以說明:

.init-method屬性指定初始化時(shí)執(zhí)行的方法,distory-method屬性指定bean銷毀時(shí)執(zhí)行的方法。

總結(jié)

以上是生活随笔為你收集整理的spring中lazy-init详解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。