给定:
<beans ... namespace decelerations>
<bean id="foo" class="com.example.foo" />
<beans profile="abc">
<bean id="bar" class="com.exmaple.bar" />
</beans>
</bean>
foo注册使用的配置文件的名称是什么?有没有办法覆盖另一个概要文件定义中的foo?在spring中,当没有明确指定配置文件时,是否有默认配置文件的名称。
发布于 2013-01-22 00:47:15
spring中的默认配置文件是" Default ",请看这个:https://jira.springsource.org/browse/SPR-8203
您可以通过执行以下操作更改web.xml中的默认配置文件:
<context-param>
<param-name>spring.profiles.default</param-name>
<param-value>production</param-value>
</context-param>
命令行:
-Dspring.profiles.default=production
环境变量:
export spring_profiles_default=production
如果设置了活动配置文件,它将覆盖默认值。
发布于 2013-01-22 00:59:10
Foo
只是在没有配置文件的情况下注册,无论您在该环境中使用的是什么配置文件,它都将始终被实例化。Spring
只允许在一个XML
文件中创建多个具有相同id
的bean,如果它们在不同的<beans>
集中,所以我认为如果Foo
bean不在带有配置文件的<beans>
标记中,就不可能覆盖它。
如果没有定义概要文件,Spring将使用名为default
的概要文件。但是,不在带有配置文件的<beans>
标记内的bean
将不会在该配置文件下注册。这只意味着,如果您有类似以下XML
的内容,并且没有提供配置文件,则具有默认配置文件的bean将被加载,而没有配置文件的bean也将被加载。
<beans ... namespace decelerations>
<bean id="foo" class="com.example.foo" />
<beans profile="default">
<bean id="bar" class="com.exmaple.bar" />
</beans>
</bean>
https://stackoverflow.com/questions/14442075
复制相似问题