问题描述
spring 中配置 bean lazy-init="true"但是应用启动时bean还是被初始化,通过排除配置文件发现配置dwr后,懒加载就不起作用。请问下,有知道是什么原因么?去掉dwr配置,懒加载就起作用。 <!--spring DWR配置 --> <dwr:configuration> <dwr:convert type="bean" class="org.hibernate.validator.engine.ConstraintViolationImpl"> </dwr:convert> <dwr:convert type="bean" class="java.lang.StackTraceElement"></dwr:convert> <dwr:convert type="exception" class="java.lang.Exception"></dwr:convert> </dwr:configuration> <dwr:controller id="dwrController" debug="true"> <dwr:config-param name="crossDomainSessionSecurity" value="false"/> <dwr:config-param name="allowScriptTagRemoting" value="true"/> </dwr:controller> <dwr:url-mapping/>
解决方案
这估计是dwr在启动时去获取这些bean并注册,所以懒加载其实有效。
解决方案二:
有没有这种情况如果一个bean被设置为延迟初始化,而另一个非延迟初始化的singleton bean依赖于它那么当ApplicationContext提前实例化singleton bean时,它必须也确保所有上述singleton 依赖bean也被预先初始化试试这个:<beans default-lazy-init="true">