(1)作用域包括:

Singleton(单例模式)
Prototype(原型模式;多例模式)
Request(HTTP请求)
Session(会话)
global-session(全局会话,在Spring5.X中已经删除了)

(2)作用范围说明

Singleton:
使用该属性定义Bean时,I0C 容器仅创建一个Bean实例,I0C 容器每次返回的是同一个 Bean实例。
Prototype:
使用该属性定义Bean时,I0C 容器可以创建多个Bean实例,每次返回的都是一个新的实例。
Request:
该属性仅对HTTP请求产生作用,使用该属性定义Bean时,每次HTTP请求都会创建一个新的Bean,适用于WebApplicationContext环境
Session:
该属性仅用于HTTP Session, 同一个Session共享一个Bean实例。不同Session使用不同的实例。
global-session:
该属性仅用于HTTP Session, 同session 作用域不同的是,所有的Session共享一个Bean实例。

(3)Bean的生命周期

在实际开发中,我们一般常用的就是单例模式和原型模式。
单例模式生命周期与容器相同。容器创建,对象也就创建了,容器消失,对象也就消失
原型模式生命周期,是每次使用时创建新的对象,用完等待垃圾回收器回收。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐