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