Spring Bean实例的作用范围由配置项scope限定;其一般有5个作用域:
- singleton(单例模式):使用该属性定义Bean时,IOC容器仅创建一个Bean实例,IOC容器每次返回的是同一个Bean实例,当scope未指定时,singleton是默认的作用域;
- prototype(原型模式):使用该属性定义Bean时,IOC容器可以创建多个Bean实例,每次返回的都是一个新的实例;
- request:该属性仅对HTTP请求产生作用,使用该属性定义Bean时,每次HTTP请求都会创建一个新的Bean,适用于WebApplicationContext环境;
- session:该属性仅用于HTTP Session,同一个Session共享一个Bean实例。不同Session使用不同的实例;
- global-session:该属性仅用于HTTP Session,同session作用域不同的是,所有的Session共享一个Bean实例;