当前位置: 首页 > 知识库问答 >
问题:

spring JMX能否以两个不同的bean名称导出同一个bean实例?

邰棋
2023-03-14

在Spring3.1中,我试图通过JMX导出相同的bean,使用两个不同的bean名称和两个不同的接口。

<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>

但是,当我启动我的应用程序时,我得到了一个异常

javax.management.InstanceAlreadyExistsException: MXBean already registered with name internal:name=internalName

有没有任何方法可以在两个不同的mbean名称下注册同一个bean实例,从而公开不同的接口?

共有1个答案

笪波鸿
2023-03-14

可以用多个名称注册同一个MBean吗?表示您可以用不同的名称注册相同的MBean,但提供了一些理由来说明为什么这可能是一个坏主意。

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

 类似资料:
  • 但是我有两种回购方式 如何创建两个bean,其中一个是用注入的,另一个是用注入的?

  • 在Spring IOC中,bean的两个定义(具有相同的名称和类)是否有效? 我有两个bean定义文件包含在web中。xml。参见下面的示例。 应用Context-beans1.xml applicationContext-beans2。xml 到目前为止,我还没有遇到任何问题。但是,这可能会影响到多线程和集群的现实环境吗? 注意:这两个XMLs都被加载,因为我可以使用在这两个XMLs中定义的其他

  • 问题内容: 我有一个包装连接池的类,该类从spring配置中获取其连接详细信息,如下所示: 此bean稍后在服务中使用,并与注释自动关联。 我的问题是,我该如何复制该bean并为其提供不同的连接详细信息,然后在服务中添加它。意思除了上面,我将有: 并在服务中: 问题答案: 您可以与结合使用,但在这种情况下,我建议使用: 甚至更简单:

  • 我有两个spring bean类实现相同的接口。 你能给我一个建议吗。

  • 问题内容: 我以前用C编写过代码,但是我是Java的新手,我正在为OOP类编写教程,这几乎是我第一次正式学习该语言。 在本教程中,我的教授制作了一个类,该类将用于测试我必须自己做的I / O助手类 (顺便说一句,该教程是(a)可选的,(b)不是用于标记的,所以我是(c)我以前从未使用过Java,而我的许多其他同学都没有使用过Java,所以我落后了)。 无论如何。在他制作的测试类中,他将方法“ ge

  • 我想为Dao类编写一个JUnit测试。dao不需要任何save方法,因为它只读取一些数据。 测试使用的是HSQLDB,我需要先插入一些测试数据。由于我不想只编写代码来使测试运行,所以我扩展了DaoImpl类,使其具有一个save方法。