java – 我可以动态地将其他Spring配置文件加载到现有的WebApplicationContext中吗?

前端之家收集整理的这篇文章主要介绍了java – 我可以动态地将其他Spring配置文件加载到现有的WebApplicationContext中吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在Tomcat 6.0.18中启动我的webapp后,我只使用初始化系统所需的内容来引导 Spring – 即,现在,数据库迁移.在迁移成功完成之前,我不希望加载系统的任何部分.这可以防止其他bean在操作或甚至实例化之前等待迁移完成.

我有一个配置了dbMigrationDAO的startup-appcontext.xml,一个ThreadPoolExecutor的startupManager,最后是一个FullSystemLauch bean.我通过setter注入将配置位置列表传递给FullSystemLaunch bean. FullSystemLaunch bean实现ServletContextAware,获取对当前WebApplicationContext的引用,因此我可以拥有ConfigurableListableBeanFactory.不幸的是,这个bean工厂isConfigurationFrozen()返回true,因此通过调用beanfactory.setConfigLocations(configLocations)无效.

我可以做到这一点,还是Spring阻止我这样做,因为它有点与众不同?如果理解这似乎是合理的,但也有点危险.是的,我愿意吹掉当前的上下文b / c初始化完成后不需要当前加载的单例.

感谢您的帮助.

解决方法

您可以将现有上下文用作其他上下文的父上下文,但我怀疑您是否可以替换现有的WebApplicationContext.

如果您使用EAR-WAR打包,则可以通过从EAR加载应用程序上下文然后在WAR中添加一个应用程序上下文来获得开箱即用(类型).

不确定这是否适用于您的情况.

猜你在找的Java相关文章