spring中lazy-init详解
ApplicationContext实现的默认行为就是在启动时将所有singleton bean提前进行实例化(也就是依赖注入)。提前实例化意味着作为初始化过程的一部分,ApplicationContext实例会创建并配置所有的singleton bean。通常情况下这是件好事,因为这样在配置中的任何错误就会即刻被发现(否则的话可能要花几个小时甚至几天)。
<bean id="testBean" class="com.fhx.TestBean"> 该bean默认的设置为:
<bean id="testBean" class="com.fhx.TestBean" lazy-init="false"> lazy-init="false" 立退加载, 表示spring启动时,立刻进行实例化。
(lazy-init 设置只对scop属性为singleton的bean起作用)
有时候这种默认处理可能并不是你想要的。如果你不想让一个singleton bean在ApplicationContext实现在初始化时被提前实例化,那么可以将bean设置为延迟实例化。
<bean id="testBean" class="com.fhx.TestBean" lazy-init="true">, lazy-init="true"> 延迟加载 ,设置为lazy的bean将不会在ApplicationContext启动时提前被实例化,而是在第一次向容器通过getBean索取bean时实例化的。
如果一个设置了立即加载的bean1,引用了一个延迟加载的bean2,那么bean1在容器启动时被实例化,而bean2由于被bean1引用,所以也被实例化,这种情况也符合延迟加载的bean在第一次调用时才被实例化的规则。
在容器层次中通过在<beans/>元素上使用'default-lazy-init'属性来控制延迟初始化也是可能的。如下面的配置:
<beans default-lazy-init="true"><!-- no beans will be eagerly pre-instantiated... --></beans>
如果一个bean的scope属性为scope=“pototype“时,即使设置了lazy-init="false",容器启动时不实例化bean,而是调用getBean方法是实例化的
另外加以说明:
.init-method属性指定初始化时执行的方法,distory-method属性指定bean销毁时执行的方法。
spring中lazy-init详解相关推荐
- Spring中循环依赖详解
目录 一.循环依赖第一种情况 一.示例代码 二.源码分析: 三.debug调试截图 二.循环依赖第二种情况--构造函数 一.示例代码: 二.运行结果: 三.为什么构造函数的循环依赖不被允许? 四.报错 ...
- 第3章 Spring中的Bean详解(2)
目录 1 Bean的装配方式 2 基于XML的装配 2.1 传入参数的类型 2.2 字面值注入(SpringDIConfig) name属性:属性的名称,与Bean中setter方法的名称一致. ...
- Spring中监听器的详解
在web项目中我们自动加载spring配置文件需要在web.xml文件中添加一段配置: <!-- 配置spring容器监听器 --><context-param><par ...
- Spring中@Value注解详解
在spring项目中必不可少的就是读取配置文件,那么读取配置文件就有两种方式.一种就是使用Spring中@Value注解,还有一种是使用SpringBoot中的@ConfigurationProper ...
- Spring中,applicationContext.xml 配置文件在web.xml中的配置详解
Spring中,applicationContext.xml 配置文件在web.xml中的配置详解 2016年10月04日 15:22:26 阅读数:7936 转自http://www.cnblogs ...
- SpringBoot配置文件中spring.profiles.active配置详解
SpringBoot配置文件中spring.profiles.active配置详解 1.多环境配置 我们在开发Spring Boot应用时,通常同一套程序会被应用和安装到几个不同的环境,比如:开发.测 ...
- 跟着小马哥学系列之 Spring AOP(Advisor 详解)
学好路更宽,钱多少加班. --小马哥 简介 大家好,我是小马哥成千上万粉丝中的一员!2019年8月有幸在叩丁狼教育举办的猿圈活动中知道有这么一位大咖,从此结下了不解之缘!此系列在多次学习极客时间< ...
- Python中self用法详解
Python中self用法详解 https://blog.csdn.net/CLHugh/article/details/75000104 首页 博客 学院 下载 图文课 论坛 APP 问答 商城 V ...
- ALSA声卡驱动中的DAPM详解之四:在驱动程序中初始化并注册widget和route
前几篇文章我们从dapm的数据结构入手,了解了代表音频控件的widget,代表连接路径的route以及用于连接两个widget的path.之前都是一些概念的讲解以及对数据结构中各个字段的说明,从本章开 ...
- Linux中etc目录详解
Linux中etc目录详解 /etc目录 包含很多文件.许多网络配置文件也在/etc 中. /etc/rc or/etc/rc.d or/etc/rc*.d 启动.或改变运行级时运行的sc ...
最新文章
- c语言 坐标系转换 axistoradius,dynamo编程语言翻译.pdf
- gnome mysql client_解决MySQLWorkbenchgnome-keyring-daemon错误的方法分享
- luogu_3966【题解】单词 AC自动机
- 在集设把优秀的设计合集,轻松追寻设计灵感
- Python实战从入门到精通第十三讲——返回多个值的函数
- 【转载】【凯子哥带你学Framework】Activity界面显示全解析(下)
- 动手写个数字输入框2:起手式——拦截非法字符
- 使用FastDFS在CentOS上搭建简易分布式文件系统
- 简单的java恶搞小病毒_恶搞电脑病毒代码有哪些
- 什么是订单管理系统OMS
- w ndows10用多大c盘,安装win10系统c盘要多大才够用
- IP错误引起MongoDB副本集初始化失败
- 回忆2012-入坑OpenStreetMap10年纪
- 【雷达与对抗】【2013.12】一种紧凑型超宽带雷达系统
- 棋盘(Checkerboard)算法
- 微信早安,利用uniCloud阿里云的云函数实现定时推送
- apktool下载安装
- 高性能计算机传奇(vamei)
- MTK Android Driver :Camera
- 我的2013----IT女的一年经历
热门文章
- Deno 兼容浏览器具体指的是什么?
- GoJS超详细入门(插件使用无非:引包、初始化、配参数(json)、引数据(json)四步)...
- Django 入门项目案例开发(上)
- 《代码本色》作者Daniel Shiffman:艺术家也编程
- 开启Windows8里面的Hyper-V虚拟机功能
- 谷歌Analytics添加到您的SharePoint 2010网站的2种方法
- System.Timers.Timer 多线程问题[转]
- 石川es6课程---4、箭头函数
- 后盾网lavarel视频项目---laravel 使用laracasts/flash插件提示信息
- IIS6.0打开ASP文件,出现500错误或404错误解决方法