spring bean的作用域
spring容器中bean有五种作用域
- singleton单例:这种 bean 范围是默认的,这种范围确保不管接受到多少个请求,每个容器中只有一个 bean 的实例,单例的模式由 bean factory 自身来维护,在加载spring配置文件时就会创建对象
- prototype原型:原型范围与单例范围相反,为每一个 bean 请求提供一个实例,在调用getBean方法的时候才会创建
- request请求:在请求 bean 范围内会每一个来自客户端的网络请求创建一个实例,在请求完成以后,bean 会失效并被垃圾回收器回收,仅在web的Spring WebApplicationContext环境中有效
- session会话:与请求范围类似,确保每个 session 中有一个 bean 的实例,在 session 过期后,bean 会随之失效,仅在web的Spring WebApplicationContext环境中有效
- application/global-session:该bean的生命周期与ServletContext的生命周期一致,仅在web的Spring WebApplicationContext环境中有效