2

我是 Spring JMX 的新手。我想通过 Spring JMX 监视我的项目中的原型 bean,我创建了一个示例项目来使用 Spring 的 MbeanExporter 注册一个 bean(Singleton) 正在工作。然后我用谷歌搜索用 Spring JMX 注册 Non-Singleton bean 并监视它,但我没有发现任何有用的东西。

我遇到了一个描述我的问题的Spring 论坛帖子,但这个答案并不重要。

4

1 回答 1

1

我一直在谷歌上搜索这个问题,我发现 stackoverlow 本身很少有真正帮助我的帖子。只需在此处复制代码:-

 @Component("MyPrototypeScopedBeanName")
 @Scope(value = "prototype")
 @ManagedResource     
 public class MyPrototypeScopedBeanName implements SelfNaming

 @Autowired
 MBeanExporter exporter;
 .
 .
 @PostConstruct
 private void init() throws Exception {
    exporter.registerManagedResource(this);
 }
 .
 .
 .

 @Override
 public ObjectName getObjectName() throws MalformedObjectNameException {
     return new ObjectName("com.foobar", "name", this.toString());
 }

此外,您可能希望将导出器配置为在自动检测期间忽略这一点,因为自动检测与原型一起使用的方式,它将为自己创建另一个实例,这将为您的 JMX 控制台添加一个额外的实例。

<property name="autodetect" value="true"/>
<!--  Done to prevent creation of additional prototype during autodetect routine -->
<property name="excludedBeans">
    <list>
        <value>MyPrototypeScopedBeanName</value>
    </list>
</property>

堆栈溢出链接

另一个链接

礼貌:-@theJC

于 2015-04-28T17:30:20.947 回答