1
|
shsteimer · 技术社区 · 14 年前 |
![]() |
1
2
你考虑过使用beanRefContext方法吗。(ContextSingletonBeanFactoryLocator)。这样,您可以通过另一个spring配置文件来配置spring配置文件(及其名称)。
文件如下所示:
并且可以使用PropertyPlaceHolderConfigurer设置beanconfigfile的NameOfBeanConfigFile的值。 我喜欢这种方法,因为它意味着我可以混合静态bean配置文件名和动态bean配置文件名,因此不必重复bean配置。 当我不得不做类似的事情时,我会通过加载为URL资源的配置文件(通过jndi)进行参数化 |
![]() |
2
2
然后我扩展ContextLoaderListener
和ContextLoader
此解决方案从环境变量加载它,但代码是灵活的,允许在系统属性中设置它。 |
![]() |
3
-2
我的解决方案是使用一个非常简单的application context,它包含真正的应用程序上下文: applicationContext.xml:
并在WAR中打包realContext.xml和realContext2.xml。不需要花哨的上下文侦听器。 只是我的意见,但我很不喜欢战争不是自给自足的。我发现只有一个部署单位是非常方便的。因此,我希望在构建过程中创建两个不同版本的WAR,每个版本对应一个所需的配置。 另一种解决方案是,如果要根据给定的属性加载不同的bean,可以使用propertyplaceholderconfig并将bean的名称作为属性:
以及具有以下内容的属性文件:
或
|