Spring容器對Bean組件的管理


Bean對象創建

默認是隨着容器創建

可以使用 lazy-init=true:在調用 getBean 延遲創建
也可以用 <beans default-lazy-init="true"/> 批量延遲創建

Bean對象的創建模式

默認是單例,可以使用scope屬性改變。

singleton:單例,每次調用getBean返回同一個對象

prototype:原型,每次調用getBean返回一個新的對象

Bean對象初始化和銷毀

init-method 屬性用於指定初始化方法
spring 容器創建完對象后,將會執行 xml 文件中指定的初始化方法,單例模式中初始化方法只會執行一次

destroy-method 屬性用於指定銷毀方法,僅適用於 singleton 模式,
在調用 AbstractApplicationContext 對象的 close() 方法時觸發

三種實例化bean的方式

1.使用類構造器實例化

    <bean id=“userService" class="service.UserService"/>


2.使用靜態工廠方法實例化

    <bean id="userService" class="service.UserFactory" factory-method="createUser"/>

    public class UserFactory {
        public static UserService createUser(){
            return new UserService();
        }
    }


3.使用實例工廠方法實例化:

    <bean id="userServiceFactory" class="service.UserFactory"/>
    <bean id="userService" factory-bean="userServiceFactory" factory-method="createUser"/>

    public class UserFactory {
        public UserService createUser(){
            return new UserService();
        }
    }


免責聲明!

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



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