博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring学习笔记1
阅读量:6687 次
发布时间:2019-06-25

本文共 1394 字,大约阅读时间需要 4 分钟。

hot3.png

you should use the prototype scope for all beans that are stateful, while the singleton scope should be used for stateless beans.
The singleton scope is the default scope in Spring.
后向兼容:
ApplicationContext实现的默认行为就是在启动时将所有singleton bean提前进行实例化。提前实例化意味着作为初始化过程的一部分,ApplicationContext实例会创建并配置所有的singleton bean。通常情况下这是件好事,因为这样在配置中的任何错误就会即刻被发现(否则的话可能要花几个小时甚至几天)。
有时候这种默认处理可能并不是你想要的。如果你不想让一个singleton bean在ApplicationContext实现在初始化时被提前实例化,那么可以将bean设置为延迟实例化。一个延迟初始化bean将告诉IoC 容器是在启动时还是在第一次被用到时实例化。 
在XML配置文件中,延迟初始化将通过<bean/>元素中的lazy-init属性来进行控制。例如: 

当ApplicationContext实现加载上述配置时,设置为lazy的bean将不会在ApplicationContext启动时提前被实例化,而not.lazy却会被提前实例化。 

需要说明的是,如果一个bean被设置为延迟初始化,而另一个非延迟初始化的singleton bean依赖于它,那么当ApplicationContext提前实例化singleton bean时,它必须也确保所有上述singleton 依赖bean也被预先初始化,当然也包括设置为延迟实例化的bean。因此,如果Ioc容器在启动的时候创建了那些设置为延迟实例化的bean的实例,你也不要觉得奇怪,因为那些延迟初始化的bean可能在配置的某个地方被注入到了一个非延迟初始化singleton bean里面。
在容器层次中通过在<beans/>元素上使用'default-lazy-init'属性来控制延迟初始化也是可能的。如下面的配置: 

还看到bean的组装,autowire="no" 是默认的格式,也可以使用混合的模式,即显示指定,也可以使用autowire=四种类型的一种,实践中,等于no是最佳的,清晰明了。

文档参考:

http://mojianpo.iteye.com/blog/803707
http://static.springsource.org/spring/docs/2.0.x/reference/beans.html#beans-factory-lazy-init
http://static.springsource.org/spring/docs/2.5.3/reference/beans.html#beans-factory-scopes

转载于:https://my.oschina.net/forrest420/blog/109051

你可能感兴趣的文章
电压电流采集模块,温湿度采集,称重模块,变送器,adc模数转换模块
查看>>
VirtualBox无法进入Win8PE的桌面
查看>>
弹出菜单效果
查看>>
SQL常用语句集合(不断更新)
查看>>
测试LCD1602的显示,显示时间,提示语
查看>>
GAITC 2019全球人工智能技术大会(南京)
查看>>
phpcms网站搬家 至 服务器 完整并且详细过程
查看>>
myBatis针对不同数据库的模糊查询
查看>>
Git 分支(分布式版本控制系统)
查看>>
uva 10972 RevolC FaeLoN
查看>>
asp.net mvc生命周期学习
查看>>
HDU 1212 Big Number 【大数求余模拟】
查看>>
静态类(static)与java值传递、引用传递小测
查看>>
Android深入浅出系列之Bluetooth—蓝牙操作(一)
查看>>
vs 代码格式化
查看>>
权限管理系统
查看>>
html a img table
查看>>
PowerShell脚本保存密码
查看>>
前端基础(JavaScript)
查看>>
安装OpenCV3.1 与VS2015配置主要步骤
查看>>