我正在尝试创建以下弹簧配置
<beans profile="profile1">
<jms:outbound-channel-adapter id="sampleId"/>
</beans>
<beans profile="profile2">
<jms:outbound-channel-adapter id="sampleId"/>
</beans>
(jms:outbound-channel-adapter是spring integration的命名空间)
创建此类上下文时,我得到重复的bean ID异常...
知道为什么吗?
编辑..(活动配置文件设置为profile1)
答案 0 :(得分:0)
您必须为当前上下文提供有效的配置文件。此令牌可以设置为:
环境变量
JVM属性
Web参数
编程
Spring还会查找令牌spring.profiles.default,如果没有使用spring.profiles.active指定,则可以使用它来设置默认配置文件。
示例:
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>spring.profiles.active</param-name>
<param-value>web-dev</param-value>
</init-param>
</servlet>
applicationContext的外观如下:
<beans profile="web-dev, test-dev">
<import resource="trace-context.xml"/>
<import resource="spring-data-jpa.xml"/>
<import resource="spring-security-roles.xml" />
</beans>
<beans profile="web-dev">
<bean id="deployProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean"
p:location="/WEB-INF/spring.properties" />
<import resource="spring-cache.xml"/>
<import resource="tiles-context.xml" />
<import resource="themes-context.xml" />
</beans>
<beans profile="test-dev">
<bean id="deployProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean"
p:location="classpath:spring.properties" />
</beans>
答案 1 :(得分:0)
确保所有相关的xsd声明都使用&gt; = 3.1版本。在Spring 3.1版中添加了配置文件功能。至少为bean和jms命名空间设置。另见我对类似SO问题的回答here。