本文将从以下三方面来详述Spring对Bean管理的细节:
- Spring 创建bean的三种方式
- bean对象的作用范围
- bean对象的生命周期
一、Spring 创建bean的三种方式
4. 使用默认构造函数创建bean对象,spring默认使用, 如果没有无参构造函数则无法创建
2.使用普通工厂中的方法创建bean对象(使用某个类中的方法创建并存入spring容器中)
工厂类:
3.使用工厂中的静态方法创建bean对象(使用某个类中的静态方法创建并存入spring容器中)
二、bean对象的作用范围
bean对象的作用范围由bean标签的scope属性决定, scope有一些取值:
-
singleton:单例(默认)
-
prototype: 多例
-
request: 作用域web应用的请求范围
-
session: 作用域web应用的会话范围
-
global-session: 作用域集群环境的会话范围(全局会话范围)
什么是global-session, 可以参考:
三、bean对象的生命周期
出生 | 活着 | 死亡 | 总结 | |
---|---|---|---|---|
单例 | 当容器创建时,对象初始化 | 只要容器在,对象一直或者 | 容器销毁,对象死亡 | 单例对象的生命周期跟容器相同 |
多例 | 使用对象时,Spring创建 | 对象是要被使用一直活着 | 由java垃圾回收机制销毁 | 由于Sring不知道有没有程序在用, 所以spring不能销毁 |