Spring框架default-lazy-init所有bean

时间:2011-05-26 14:15:50

标签: spring lazy-loading javabeans

弹簧框架加载的所有bean都有lang-init弹簧属性吗?

我知道这些属性

 - lazy-init="true"
 - default-lazy-init="true"

然而,有多个spring config xml文件,有些是在jar中打包的,所以不能自由更改< bean>也不是&bean;标签

通过配置解决此问题的任何其他方法?还是以编程方式?

4 个答案:

答案 0 :(得分:2)

没有扩展Spring bean加载器,我不知道。

答案 1 :(得分:2)

您也可以使用@Lazy注释,但它与您上面提到的相同。

答案 2 :(得分:0)

根据java doc,这应该有效(虽然它看起来不太好)

if (context.getBeanFactory() instanceof DefaultListableBeanFactory)
    {
        ((DefaultListableBeanFactory) context.getBeanFactory()).setAllowEagerClassLoading(false);
    }

答案 3 :(得分:0)

我已经在我的公司实施了这个,不得不延长一些强硬的类。这并不容易,但我们在每个tomcat初创公司都获得了大约20秒。不幸的是,对于隐私条款,我无法显示代码,但请查看ClassPathBeanDefinitionScanner,DefaultBeanDefinitionDocumentReader,ContextNamespaceHandler和ComponentScanBeanDefinitionParser类。