【问题标题】:spring - exposing SimpleMessageListenerContainer created from factory as mbeanspring - 将从工厂创建的 SimpleMessageListenerContainer 公开为 mbean
【发布时间】:2015-11-15 04:42:58
【问题描述】:

使用spring 4。我正在创建一个

SimpleMessageListenerContainer

来自带有

的工厂方法
@Configuration @Bean

        @Bean( name = "container" )
        SimpleMessageListenerContainer container(){
...
...

如何在 JMX 上公开这个实例?由于@ManagedResource 只能应用于类

【问题讨论】:

    标签: spring spring-jmx


    【解决方案1】:
    @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;
    }
    

    【讨论】:

      猜你喜欢
      • 2019-04-30
      • 1970-01-01
      • 1970-01-01
      • 2019-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-11
      相关资源
      最近更新 更多