Bean Spring container management component

Bean object creation

默认是随着容器创建

可以使用 lazy-init=true:在调用 getBean 延迟创建
也可以用 <beans default-lazy-init="true"/> 批量延迟创建

Bean object creation mode

默认是单例,可以使用scope属性改变。

singleton:单例,每次调用getBean返回同一个对象

prototype:原型,每次调用getBean返回一个新的对象

Bean object initialization and destruction

init-method 属性用于指定初始化方法
spring 容器创建完对象后,将会执行 xml 文件中指定的初始化方法,单例模式中初始化方法只会执行一次

destroy-method 属性用于指定销毁方法,仅适用于 singleton 模式,
在调用 AbstractApplicationContext 对象的 close() 方法时触发

Examples of three kinds of ways 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();
        }
    }

Guess you like

Origin www.cnblogs.com/loveer/p/11576408.html