Java后台框架篇--Spring之Bean的五个作用域
来源:互联网 发布:网络打字员兼职1w300 编辑:程序博客网 时间:2024/06/10 23:10
当通过Spring容器创建一个Bean实例时,不仅可以完成Bean实例的实例化,还可以为Bean指定特定的作用域。Spring支持如下5种作用域:
singleton:单例模式,在整个Spring IoC容器中,使用singleton定义的Bean将只有一个实例
prototype:原型模式,每次通过容器的getBean方法获取prototype定义的Bean时,都将产生一个新的Bean实例
request:对于每次HTTP请求,使用request定义的Bean都将产生一个新实例,即每次HTTP请求将会产生不同的Bean实例。只有在Web应用中使用Spring时,该作用域才有效
session:对于每次HTTP Session,使用session定义的Bean豆浆产生一个新实例。同样只有在Web应用中使用Spring时,该作用域才有效
globalsession:每个全局的HTTP Session,使用session定义的Bean都将产生一个新实例。典型情况下,仅在使用portlet context的时候有效。同样只有在Web应用中使用Spring时,该作用域才有效
其中比较常用的是singleton和prototype两种作用域。对于singleton作用域的Bean,每次请求该Bean都将获得相同的实例。容器负责跟踪Bean实例的状态,负责维护Bean实例的生命周期行为;如果一个Bean被设置成prototype作用域,程序每次请求该id的Bean,Spring都会新建一个Bean实例,然后返回给程序。在这种情况下,Spring容器仅仅使用new 关键字创建Bean实例,一旦创建成功,容器不在跟踪实例,也不会维护Bean实例的状态。
如果不指定Bean的作用域,Spring默认使用singleton作用域。Java在创建Java实例时,需要进行内存申请;销毁实例时,需要完成垃圾回收,这些工作都会导致系统开销的增加。因此,prototype作用域Bean的创建、销毁代价比较大。而singleton作用域的Bean实例一旦创建成功,可以重复使用。因此,除非必要,否则尽量避免将Bean被设置成prototype作用域。
- Java后台框架篇--Spring之Bean的五个作用域
- Spring中Bean的五个作用域
- Spring中Bean的五个作用域
- Spring中Bean的五个作用域
- Spring中Bean的五个作用域
- Java后台框架篇--Spring中Bean的生命周期
- Spring框架中Bean的作用域
- Spring框架Bean作用域
- spring2.x bean的五个作用域
- Java后台框架篇--Spring Security保护bean方法
- spring之bean的作用域scope
- Spring之Bean的作用域
- Spring IOC 之Bean的作用域
- Java后台框架篇--Spring之WebFlow
- Java后台框架篇--Spring之AOP
- Java后台框架篇--Spring之缓存
- (五)Spring框架——Bean的作用域
- Spring框架学习(6):bean的作用域
- ubuntu如何让状态栏放到屏幕下方
- RL经典mode/value/policy/step/on/off
- 3 大数据实战系列-spark shell分析日志
- Vue 中的按键别名(.enter)和修饰键(.ctrl)
- xmr-stak-cpu 安装及使用
- Java后台框架篇--Spring之Bean的五个作用域
- oracle中的角色
- 数据科学家必须知道的10个深度学习架构
- 15算法课程 21. Merge Two Sorted Lists
- [linux]ssh vpn(vpn)
- Java后台框架篇--Spring之AOP
- bzoj1690 [Usaco2007 Dec]奶牛的旅行(最优比率环,二分答案+spfa判负环)
- 一、k-means
- [ffmpeg]加硬字幕