Spring框架默认惰性初始化所有bean
是否有一个spring属性来初始化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文档,这应该可以工作(尽管看起来不太好
- 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);
}