spring中Bean的懶加載


ApplicationContext容器中,當容器一啟動時,所有的bean(單例的)都會被創建和注入依賴,這也被視為IOC容器啟動過程中的一個步驟。

那如何讓一個bean在需要的時候再被創建,而不是容器一加載的時候呢?

在配置文件的bean標簽中,將lazy-init屬性設置為true

<bean id="lazy" class="com.foo.ExpensiveToCreateBean" lazy-init="true"/>
<bean name="not.lazy" class="com.foo.AnotherBean"/>

這樣,當applicationContext容器啟動時,該Bean不會初始化,而是當需要使用這個類的時候才會創建實例

還有另外一種情況,就是這個被懶加載的Bean,它被不是一個懶加載的bean所依賴,那么在容器啟動時,即使它是懶加載 的,也會被實例化。

全局懶加載

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

beans標簽中配置default-lazy-init="true"屬性即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM