Spring容器对Bean组件的管理

欢迎光临我的博客[http://poetize.cn],前端使用Vue2,聊天室使用Vue3,后台使用Spring Boot

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();
        }
    }
posted @ 2019-09-24 09:13  LittleDonkey  阅读(989)  评论(0编辑  收藏  举报