在Spring中,可以在元素的scope属性里设置bean的作用域,以决定这个bean是单实例的还是多实例的。
默认情况下,Spring只为每个在IOC容器里声明的bean创建唯一一个实例,整个IOC容器范围内都能共享该实例;所有后续的getBean()调用的bean引用都将返回这个唯一的bean实例。该作用域被称为singleton,它是所有bean的默认作用域。
类别 | 说明 |
---|---|
singleton | 在SpringIOC 容器中仅存在一个Bean实例,Bean以单实例的方式存在 |
prototype | 每次调用getBean()时都会返回一个新的实例 |
request | 每次HTTP请求都会创建一个新的Bean,该作用域仅适用于WebApplicationContext环境 |
session | 同一个HTTP Session共享一个Bean,不同的HTTP Session使用不同的Bean。该作用域仅适用于WebApplicationContext环境 |
当bean的作用域为单例时,Spring会在IOC容器对象创建时就创建bean的对象实例。