https://www.cnblogs.com/orionhp/p/6362615.html
ApplicationContext實現的默認行為就是在啟動時將所有singleton bean提前進行實例化。提前實例化意味着作為初始化過程的一部分,
ApplicationContext實例會創建並配置所有的singleton bean。通常情況下這是件好事,因為這樣在配置中的任何錯誤就會即刻被發現
(否則的話可能要花幾個小時甚至幾天)。
有時候這種默認處理可能並不是你想要的。如果你不想讓一個singleton bean在ApplicationContext實現在初始化時被提前實例化,那么
可以將bean設置為延遲實例化。一個延遲初始化bean將告訴IoC 容器是在啟動時還是在第一次被用到時實例化。
在XML配置文件中,延遲初始化將通過<bean/>元素中的lazy-init屬性來進行控制。例如:
<bean id="lazy" class="com.foo.ExpensiveToCreateBean" lazy-init="true">