使用 spring 4。我正在创建一个
SimpleMessageListenerContainer
来自工厂方法
@Configuration @Bean
@Bean( name = "container" )
SimpleMessageListenerContainer container(){
...
...
如何在 JMX 上公开这个实例?由于@ManagedResource 只能应用于类
使用 spring 4。我正在创建一个
SimpleMessageListenerContainer
来自工厂方法
@Configuration @Bean
@Bean( name = "container" )
SimpleMessageListenerContainer container(){
...
...
如何在 JMX 上公开这个实例?由于@ManagedResource 只能应用于类
@Bean
public MBeanExporter exporter() {
MBeanExporter mBeanExporter = new MBeanExporter();
mBeanExporter.setBeans(
Collections.singletonMap("myDomain:type=container,name=myContainter", "container"));
return mBeanExporter;
}
这将公开所有公共方法/属性。如果您希望限制哪些暴露,您可以使用MethodNameBasedMBeanInfoAssembler
:
@Bean
public MBeanExporter exporter() {
MBeanExporter mBeanExporter = new MBeanExporter();
mBeanExporter.setBeans(
Collections.singletonMap("myDomain:type=container,name=myContainter", "container"));
MethodNameBasedMBeanInfoAssembler assembler = new MethodNameBasedMBeanInfoAssembler();
assembler.setManagedMethods(new String[] { "start", "stop" });
mBeanExporter.setAssembler(assembler);
return mBeanExporter;
}