0

我正在尝试覆盖在父 xml 和子 xml 中定义的键的映射值,该键在 MBeanExporter 的上下文中导入父 bean。我尝试了几种组合,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>

我正在寻找为父母获取键“theKey”的值“parentValue”和为孩子获取键“theKey”的值“childvalue”。根据从互联网收集的属性/属性的使用组合,我目前遇到两个不同的错误......

No unique bean of type XXX is defined: expected single bean but found 2: parentValue,keyValue

或一个BeanAlreadyExistsException。我知道父子可能不是实现我想要做的事情的最佳方式,但我正在一个更大的环境中工作,这个结构不能被修改(因为我没有包含在代码中的许多其他 bean 是当下)。

我正在尝试做的实际上可能吗?我不是 Spring 专家,我无法在文档和其他来源上找到可行的解决方案。

4

0 回答 0