Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SpringJMX可以在两个不同的bean名称下导出相同的bean实例吗?_Java_Spring_Jmx - Fatal编程技术网

Java SpringJMX可以在两个不同的bean名称下导出相同的bean实例吗?

Java SpringJMX可以在两个不同的bean名称下导出相同的bean实例吗?,java,spring,jmx,Java,Spring,Jmx,在Spring3.1中,我试图通过JMX导出具有两个不同接口的两个不同bean名称下的相同bean 下面是一些spring xml配置示例,显示了我正在尝试的操作: <bean id="exporter" class="org.springframework.jmx.export.MBeanExporter"> <property name="beans"> <map> <entry key="internal:name=internalNa

在Spring3.1中,我试图通过JMX导出具有两个不同接口的两个不同bean名称下的相同bean

下面是一些spring xml配置示例,显示了我正在尝试的操作:

<bean id="exporter" class="org.springframework.jmx.export.MBeanExporter">
<property name="beans">
  <map>
    <entry key="internal:name=internalName" value-ref="myBean"/>
    <entry key="external:name=externalName" value-ref="myBean"/>
  </map>
</property>
<property name="assembler">
  <bean class="org.springframework.jmx.export.assembler.InterfaceBasedMBeanInfoAssembler">
    <property name="interfaceMappings">
      <props>
        <prop key="internal:name=internalName">InternalMXBean</prop>
        <prop key="external:name=externalName">ExternalMXBean</prop>
      </props>
    </property>
  </bean>
</property>
有没有办法在两个不同的mbean名称下注册相同的bean实例,从而公开不同的接口?

表示可以在不同的名称下注册相同的mbean,但提供了一些关于为什么这可能是个坏主意的推理

在我的具体案例中,我使用的是MXBeans。同一个MXBean不能在不同的对象名下注册,因为这会与对MXBean间引用的支持相冲突。

表示可以在不同的名称下注册同一个MBean,但提供了一些关于为什么这可能是一个坏主意的理由


在我的具体案例中,我使用的是MXBeans。同一个MXBean不能在不同的对象名下注册,因为这会与对MXBean间引用的支持冲突。

您真的要这样做吗?这不会引起混乱吗?如果你的类实现了两个接口,也许你应该把它分成两个类。您可以创建另一个类来集成这两个实例,因此不需要更改其他代码。我之所以要这样做,是为了让同一个bean为客户/外部使用公开一个MXBean,为内部/支持使用公开一个MXBean。InternalMXBean接口扩展了ExternalMXBean接口。我不能拆分bean类,也不想编写额外的代码来处理不同的接口。你真的想这样做吗?这不会引起混乱吗?如果你的类实现了两个接口,也许你应该把它分成两个类。您可以创建另一个类来集成这两个实例,因此不需要更改其他代码。我之所以要这样做,是为了让同一个bean为客户/外部使用公开一个MXBean,为内部/支持使用公开一个MXBean。InternalMXBean接口扩展了ExternalMXBean接口。我不能拆分bean类,也不想编写额外的代码来处理不同的接口。链接不再起作用了。我想,那篇文章现在可以找到了。这个链接已经不起作用了。我想,现在可以找到那篇文章了。
javax.management.InstanceAlreadyExistsException: MXBean already registered with name internal:name=internalName