我试图覆盖在父xml和子xml中定义的键的映射值,子xml在MBeanExporter的上下文中导入父bean。我已经尝试了几种组合,使用了#34;父母" bean的属性," registrationBehaviorName"财产,以及"合并"地图本身的属性(全部出现在下面的代码中):
父Xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd">
<bean id="parentExporter" class="org.springframework.jmx.export.MBeanExporter">
<property name="autodetect" value="false" />
<property name="beans">
<map>
<entry key="theKey" value-ref="parentValue" />
</map>
</property>
</bean>
</beans>
儿童Xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd">
<import resource="classpath:/META-INF/parent-context.xml"/>
<bean id="childExporter" parent="parentExporter" class="org.springframework.jmx.export.MBeanExporter">
<property name="autodetect" value="false" />
<property name="registrationBehaviorName" value="REGISTRATION_REPLACE_EXISTING"/>
<property name="beans">
<map merge="true">
<entry key="theKey" value-ref="childValue" />
</map>
</property>
</bean>
</beans>
我希望得到父母的价值&#34; parentValue&#34;关键&#34; theKey&#34;并为孩子提供价值&#34; childvalue&#34;关键&#34; theKey&#34;。我目前得到两个不同的错误,取决于从互联网收集的属性/属性的使用组合......
No unique bean of type XXX is defined: expected single bean but found 2: parentValue,keyValue
或BeanAlreadyExistsException
。我知道父子可能不是实现我想要做的最好的方法,但我在更大的上下文中工作,这个结构无法修改(因为我在代码中没有包含的许多其他bean是本)。
我想要做的事实际上可能吗?我不是Spring专家,我无法在文档和其他来源上找到可行的解决方案。