目录
一、Bean作用域
在前面springIOC&DI中,我们知道交由spring管理的对象称为bean对象。
通过注解:@Component、@Service、@Configuration、@Controller、@Repository、@Bean可以将一个对象交由spring容器管理。
通过ApplicationContext来获取bean对象,根据类名.class、根据bean名称、根据bean名称+类名获取bean对象。
通过@Autowired、Setter、构造方法可以为应用程序注入所依赖的Bean对象。
详细内容可以看:springIOC&DI
1、Bean作用域概念
Bean对象的作用域是指Bean在spring框架中的行为模式。
2、Bean的六种作用域
(1)singleton---单例作用域
每个Spring IoC容器内相同名称的bean对象只有一个实例(单例模式);
(2)prototype---多例作用域
每次使用该bean时都会产生一个新的bean对象实例;
(3)request---请求作用域
每个http请求周期内会产生一个新的bean对象实例;
(4)session---会话作用域
每个http会话周期内会产生一个新的bean对象实例;
(5)Application---全局作用域
每个servletContext生命周期内会产生一个新的bean对象实例;
(6)websocket---HTTPWebSocket作用域
每个webSocket生命周期内会产生一个新的bean对象实例;
3、举例演示bean的几种作用域
(1)singleton
在容器中存储作用域为singleton的bean对象:
两次方式注入bean对象,观察两种方式地址:
两次获取同一个bean对象的结果:
获取到的对象是一样的。
(2)prototype
在容器中存储作用域为prototype的bean对象: