Java 非单例(原型)SpringBeans JMX可监控
我是Spring JMX的新手。我想通过SpringJMX监控我的项目中的原型bean,我创建了一个示例项目,用Spring的MbeanExporter注册一个正在工作的bean(单例)。然后我在谷歌上用SpringJMX注册了这个非单例bean,并对它进行了监控,但我没有发现任何有用的东西Java 非单例(原型)SpringBeans JMX可监控,java,spring,mbeans,spring-jmx,mbeanexporter,Java,Spring,Mbeans,Spring Jmx,Mbeanexporter,我是Spring JMX的新手。我想通过SpringJMX监控我的项目中的原型bean,我创建了一个示例项目,用Spring的MbeanExporter注册一个正在工作的bean(单例)。然后我在谷歌上用SpringJMX注册了这个非单例bean,并对它进行了监控,但我没有发现任何有用的东西 我遇到了一个描述我的问题的答案,但这个答案并不中肯 我一直在谷歌上搜索这个问题,我在stackoverlow上发现了一些真正对我有帮助的帖子。只需在此处复制代码:- @Component("MyProto
我遇到了一个描述我的问题的答案,但这个答案并不中肯 我一直在谷歌上搜索这个问题,我在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());
}
此外,您可能希望将导出器配置为在autodetect期间忽略此问题,因为autodetect处理原型的方式将为自身创建另一个实例,该实例将向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>
MyPrototypeScopedBeanName
礼节:-@theJC