bean的生命周期以及作用域
时间: 2023-08-25 11:14:40 浏览: 112
spring的bean作用域
在Spring框架中,Bean是指被Spring容器所管理的对象。当我们在Spring配置文件或注解中定义一个Bean时,这个Bean会经历一系列的生命周期阶段,包括以下7个阶段:
1. 实例化Bean对象:当Spring容器启动时,会根据配置文件或注解中的定义,创建Bean的实例。
2. 设置Bean的属性:Spring容器会自动将配置文件或注解中定义的属性值设置到Bean实例中。
3. 调用Bean的初始化方法:如果Bean实现了InitializingBean接口或在配置文件或注解中指定了初始化方法,Spring容器会在实例化和属性设置完成后调用Bean的初始化方法。
4. Bean已经可以使用:此时,Bean已经可以被其他对象所引用和使用。
5. 调用Bean的业务方法:在Bean被其他对象所引用和使用时,Spring容器会自动调用Bean的业务方法。
6. 调用Bean的销毁方法:如果Bean实现了DisposableBean接口或在配置文件或注解中指定了销毁方法,Spring容器在关闭时会自动调用Bean的销毁方法。
7. Bean被销毁:此时,Bean已经被Spring容器销毁,不再可用。
在Spring中,Bean的作用域定义了Bean实例的生命周期和使用范围。Spring框架提供了5种标准的作用域:
1. singleton:单例模式,一个Bean实例在整个应用程序中只创建一次。
2. prototype:原型模式,每次请求Bean时都会创建一个新的Bean实例。
3. request:每个HTTP请求都会创建一个新的Bean实例,在请求结束后,Bean实例就会被销毁。
4. session:每个HTTP会话都会创建一个新的Bean实例,在会话结束后,Bean实例就会被销毁。
5. global-session:在基于portlet的web应用中,每个portlet应用都会创建一个新的Bean实例,在portlet应用结束后,Bean实例就会被销毁。
通过定义Bean的作用域,我们可以控制Bean实例的生命周期和使用范围,从而更好地管理应用程序中的对象。
阅读全文