【发布时间】:2012-10-28 15:05:32
【问题描述】:
我一直在尝试使用Spring 3.1's bean definition profiles 和嵌套bean。我曾希望我可以根据活动配置文件定义不同的 bean。考虑以下过度简化的示例,以便我的 Spring 上下文包含类似
<bean id="say" class="test.Say" p:hello-ref="hello"/>
<beans profile="prod">
<bean id="hello" class="test.Hello" p:subject="Production!"/>
</beans>
<beans profile="dev">
<bean id="hello" class="test.Hello" p:subject="Development!"/>
</beans>
我收到以下错误:
线程“main”中的异常 org.springframework.beans.factory.BeanCreationException:错误 创建在类路径资源中定义的名称为“say”的bean [applicationContext.xml]:无法解析对 bean 'hello' 的引用 同时设置 bean 属性“你好”;嵌套异常是 org.springframework.beans.factory.NoSuchBeanDefinitionException: 否 名为 'hello' 的 bean 定义在 org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:328) 在 org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1360) aJava 结果:1
我期望 hello bean 将根据活动的 Maven 配置文件(在我的情况下为 prod 或 dev)定义。我开始认为 Spring 活动配置文件 (spring.profiles.active) 可能与 Maven 配置文件完全无关。
有人可以解释我哪里出错了吗? (这甚至可以使用配置文件吗?)。
【问题讨论】:
标签: java spring maven applicationcontext