Spring框架默认惰性初始化所有bean

Spring框架默认惰性初始化所有bean,spring,lazy-loading,javabeans,Spring,Lazy Loading,Javabeans,是否有一个spring属性来初始化spring框架加载的所有bean 我知道这些属性 - lazy-init="true" - default-lazy-init="true" 然而,有多个spring配置xml文件,其中一些打包在jar中,因此不能随意更改nor或标记 是否有其他方法通过配置解决此问题?或者在编程上?除了扩展SpringBean加载程序之外,据我所知没有一个是这样的。您也可以使用@Lazy注释,但它与您上面提到的注释相同。根据java文档,这应该可以工作(尽管看起来不太好

是否有一个spring属性来初始化spring框架加载的所有bean

我知道这些属性

 - lazy-init="true"
 - default-lazy-init="true"
然而,有多个spring配置xml文件,其中一些打包在jar中,因此不能随意更改nor或标记


是否有其他方法通过配置解决此问题?或者在编程上?

除了扩展SpringBean加载程序之外,据我所知没有一个是这样的。

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

根据java文档,这应该可以工作(尽管看起来不太好)


我已经在我的公司实施了这一点,不得不延长一些SpringTough课程。这并不容易,但我们在每一家tomcat初创公司中都获得了20分左右。不幸的是,对于隐私条款,我无法显示代码,但请看一下ClassPathBeanDefinitionScanner、DefaultBeanDefinitionDocumentReader、ContextNamespaceHandler和ComponentScanBeanDefinitionParser类

我真希望我能做到这一点。我们正在自动连接许多bean,因此需要15-20秒来预实例化它们。我很想在我的开发人员机器上更改它以缩短启动时间,但在生产服务器上保持不变。嗯,这与此非常相似:,但我也对带注释的bean和从第一个xml导入的bean进行了更改
if (context.getBeanFactory() instanceof DefaultListableBeanFactory)
    {
        ((DefaultListableBeanFactory) context.getBeanFactory()).setAllowEagerClassLoading(false);
    }