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详解相关推荐

  1. Spring中循环依赖详解

    目录 一.循环依赖第一种情况 一.示例代码 二.源码分析: 三.debug调试截图 二.循环依赖第二种情况--构造函数 一.示例代码: 二.运行结果: 三.为什么构造函数的循环依赖不被允许? 四.报错 ...

  2. 第3章 Spring中的Bean详解(2)

    目录 1  Bean的装配方式 2  基于XML的装配 2.1 传入参数的类型 2.2 字面值注入(SpringDIConfig) name属性:属性的名称,与Bean中setter方法的名称一致. ...

  3. Spring中监听器的详解

    在web项目中我们自动加载spring配置文件需要在web.xml文件中添加一段配置: <!-- 配置spring容器监听器 --><context-param><par ...

  4. Spring中@Value注解详解

    在spring项目中必不可少的就是读取配置文件,那么读取配置文件就有两种方式.一种就是使用Spring中@Value注解,还有一种是使用SpringBoot中的@ConfigurationProper ...

  5. Spring中,applicationContext.xml 配置文件在web.xml中的配置详解

    Spring中,applicationContext.xml 配置文件在web.xml中的配置详解 2016年10月04日 15:22:26 阅读数:7936 转自http://www.cnblogs ...

  6. SpringBoot配置文件中spring.profiles.active配置详解

    SpringBoot配置文件中spring.profiles.active配置详解 1.多环境配置 我们在开发Spring Boot应用时,通常同一套程序会被应用和安装到几个不同的环境,比如:开发.测 ...

  7. 跟着小马哥学系列之 Spring AOP(Advisor 详解)

    学好路更宽,钱多少加班. --小马哥 简介 大家好,我是小马哥成千上万粉丝中的一员!2019年8月有幸在叩丁狼教育举办的猿圈活动中知道有这么一位大咖,从此结下了不解之缘!此系列在多次学习极客时间< ...

  8. Python中self用法详解

    Python中self用法详解 https://blog.csdn.net/CLHugh/article/details/75000104 首页 博客 学院 下载 图文课 论坛 APP 问答 商城 V ...

  9. ALSA声卡驱动中的DAPM详解之四:在驱动程序中初始化并注册widget和route

    前几篇文章我们从dapm的数据结构入手,了解了代表音频控件的widget,代表连接路径的route以及用于连接两个widget的path.之前都是一些概念的讲解以及对数据结构中各个字段的说明,从本章开 ...

  10. Linux中etc目录详解

    Linux中etc目录详解 /etc目录 包含很多文件.许多网络配置文件也在/etc 中. /etc/rc   or/etc/rc.d   or/etc/rc*.d   启动.或改变运行级时运行的sc ...

最新文章

  1. c语言 坐标系转换 axistoradius,dynamo编程语言翻译.pdf
  2. gnome mysql client_解决MySQLWorkbenchgnome-keyring-daemon错误的方法分享
  3. luogu_3966【题解】单词 AC自动机
  4. 在集设把优秀的设计合集,轻松追寻设计灵感
  5. Python实战从入门到精通第十三讲——返回多个值的函数
  6. 【转载】【凯子哥带你学Framework】Activity界面显示全解析(下)
  7. 动手写个数字输入框2:起手式——拦截非法字符
  8. 使用FastDFS在CentOS上搭建简易分布式文件系统
  9. 简单的java恶搞小病毒_恶搞电脑病毒代码有哪些
  10. 什么是订单管理系统OMS
  11. w ndows10用多大c盘,安装win10系统c盘要多大才够用
  12. IP错误引起MongoDB副本集初始化失败
  13. 回忆2012-入坑OpenStreetMap10年纪
  14. 【雷达与对抗】【2013.12】一种紧凑型超宽带雷达系统
  15. 棋盘(Checkerboard)算法
  16. 微信早安,利用uniCloud阿里云的云函数实现定时推送
  17. apktool下载安装
  18. 高性能计算机传奇(vamei)
  19. MTK Android Driver :Camera
  20. 我的2013----IT女的一年经历

热门文章

  1. Deno 兼容浏览器具体指的是什么?
  2. GoJS超详细入门(插件使用无非:引包、初始化、配参数(json)、引数据(json)四步)...
  3. Django 入门项目案例开发(上)
  4. 《代码本色》作者Daniel Shiffman:艺术家也编程
  5. 开启Windows8里面的Hyper-V虚拟机功能
  6. 谷歌Analytics添加到您的SharePoint 2010网站的2种方法
  7. System.Timers.Timer 多线程问题[转]
  8. 石川es6课程---4、箭头函数
  9. 后盾网lavarel视频项目---laravel 使用laracasts/flash插件提示信息
  10. IIS6.0打开ASP文件,出现500错误或404错误解决方法