bean配置
基础配置
别名配置
作用范围配置
1、为什么bean会默认为单例?
如果不为单例,则每一次调用bean,Spring的bean容器中,会出现多个该类的对象,这会造成容器的冗余。
2、适合交给容器进行管理的bean
-
表现层对象
-
业务层对象
-
数据层对象
-
工具对象
3、不适合交给容器进行管理的bean
- 封装实体的域对象(有状态的,会记录内部成员变量的属性值)
bean实例化
1、spring调用无参构造方法创建bean。
-
即使构造方法使用private修饰,仍然能完成创建,使用的方法是反射。
-
无参构造方法如果不存在,则抛出异常。
2、静态工厂
-
创建静态工厂,在类中,创建静态方法,返回对象,此时为非单例。
-
在配置中,添加 factory-method 属性。参数为静态方法名称。
-
Spring的调用方法不需要改变
3、实例工厂对象创建对象
4、FactoryBean
bean 生命周期
bean生命周期
-
初始化容器
1、创建对象(内存分配)
2、执行构造方法 → (Constructor)
3、执行属性注入(set操作) →(getter/setter)
4、执行bean初始化方法 →(init-method)
-
使用bean
-
关闭/销毁容器
- 执行bean销毁方法(destory-method)
方法一:生命周期控制
在配置文件中指定控制方法
方法二:使用接口控制
分别实现 Initializingbean方法和 DisposableBean接口