Bean的作用域是指 Bean 在Spring框架中的某种行为模式
(默认情况下,Spring容器中的bean都是单例的,这种行为模式,我们就称之为Bean的作用域)
Bean的作用域
在Spring中支持6种作用域,后4种在Spring MVC环境才生效
1.singleton:单例模式 在spring中,多次获取的都是一个对象
2.prototype:原型作用域(多例作用域)在spring中,多次获取的是不同对象
3.request:请求作用域 每次请求,获取的是不同的对象,同一个请求,是同一个对象
4.session:会话作用域 在同一个会话中,获取的是同一个对象
5.Application:全局作用域
6.websocet:HTTP WebSocket作用域
Bean的生命周期
1.实例化(为Bean分配内存空间)
2.属性赋值(Bean注入和装配,比如@AutoWired)
3.初始化
a.执行各种通知,如BeanNameAware,BeanFactoryAware,ApplicationContextAware 的接口方法
b.执行各种方法:
- xml定义 inti-method
- 使用注解的方式 @PostConstruct
- 执行初始化后置方法 (BeanPostProcessor)
4.使用Bean
5.销毁Bean
a.销毁容器的各种方法,如 @PreDestroy,DisposableBean 接口方法,destroymethod.
实例化和属性赋值对应构造⽅法和setter⽅法的注⼊. 初始化和销毁是⽤⼾能⾃定义扩展的两个阶段,可以在实例化之后, 类加载完成之前进⾏⾃定义"事件"处理.⽐如我们现在需要买⼀栋房⼦, 那么我们的流程是这样的:1. 先买房(实例化, 从⽆到有)2. 装修(设置属性)3. 买家电, 如洗⾐机, 冰箱, 电视, 空调等([各种]初始化,可以⼊住);4. ⼊住(使⽤ Bean)5. 卖房(Bean 销毁)