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中的default-lazy-init参数和lazy-init。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
1.4 当 Scope="singleton" 且 lazy-init="true" 时 1.5 当scope="prototype"时 1.6 当scope="prototype" 且 lazy-init="true" 时 1.7 小结 1.8 depends-on 1.8.0 实体类JavaBean 1.8.0.1 Student类 1.8.1 配置文件都...
前端开源库-markdown-it-lazy-headersMarkdown it Lazy Headers,Lazy ATX Headers插件用于Markdown it
前端开源库-lazy-dependable懒惰可靠,通过懒惰依赖解析实现可靠
基于lazy-snapping的图片分割代码
包含分析Spring IOC容器,lazy-init,循环依赖处理,AOP实现,事务管理实现源码分析详情注解,可以参考博客对应查看
java-spring-lazy-vs-eager 演示
它既不打算在现实生活中使用,也不是好的编程实践的一个例子,而是要给出一个如何使用包react-lazy-load-image-component及其道具的例子。 观看现场演示: : react-lazy-load-image-component : NPM 包: : ...
react-lazy-load, 当子元素进入viewport时,响应它们呈现子元素 延迟加载 组件反应 延迟加载 很容易使用响应组件,它帮助你以可以预测的方式延迟加载内容。 速度快,工作在 IE8+,6KB 缩小,在默认情况下使用去抖...
注:LazyImg 必须定义lazy-data属性,属性值是src的图片路径 引入JS文件:<script type="text/javascript" src="js/lazyImg.v1.0.js"> ..."lazy-name" 中的name是可以自定义,"lazy-"是前缀必须存在
安装npm install vue-lazy-container或者yarn add vue-lazy-container用法在mian.js中编写以下内容: import VueLazyContainer from "vue-lazy-container" ;Vue . use ( VueLazyContainer ) ; 例子: < template> &...
ng2-image-lazy-load, Angular2图像迟缓加载程序库 当前未维护现在,你可以尝试使用这个伟大的延迟加载 库来实现。 上面的库唯一没有的是Web工作支持- 我希望在未来的某个时候循环,或者者为tjoskar提供辅助。 ng2-...
这是适用于浙高中信息教学的python版本,python版本是3.7.12,安装了教材教学需要的package,安装thonny和spyder两个ide,开箱即用,很方便,喜欢的话给个好评哦!谢谢!
在任意目录中执行yo lazy,然后一路NEXT即可。 在包含配置文件的项目中使用 命令: yo lazy cd build-with-config-exist yo lazy 在未包含任何配置文件的项目中使用 命令: yo lazy --with-profile [config file path]...
Laravel开发-laravel-lazy-mysql Laravel基于懒惰MySQL的雄辩模型和查询生成器
vue-lazy-hydration是一个无渲染的Vue.js组件,用于改善服务器端渲染的Vue.js应用程序的估计输入延迟和交互时间。 这可以通过使用惰性水合延迟预渲染HTML的水合来实现。 安装 npm install vue-lazy-hydration ...
cortex-m4f-lazy-stacking-and-context-switching.pdf
懒惰模块 lazy-modules 实现了一种简单的方法来批量延迟加载 Node.js/io.js 模块,非常适合在具有许多导入(例如或的构建系统中实现。为什么? v8 的Script::Compile ,在使用require()时调用,通常需要比较长的时间...
懒人画家 用于SVG路径动画的现代JS库 | 入门 根据快速入门说明,可以轻松完成Lazy Line Painter的设置。 但是,如果您更需要GUI,请确保使用 。 专为SVG路径动画开发的免费...import LazyLinePainter from 'lazy-l
'default-lazy-init' attribute is not processed when XSD validation is disabled [SPR-8335] #12983 Spring JavaMailSenderImpl does not show proper message when recipient list is empty [SPR-17540] #22072 ...