Как настроить сопоставления прослушивателей уведомлений с интеграцией Spring JMX, когда я использую @EnableMBeanExport - PullRequest
0 голосов
/ 24 апреля 2019

Как сказано в ссылке Spring https://docs.spring.io/spring/docs/current/spring-framework-reference/integration.html#jmx-notifications-listeners, мне нужно установить сопоставления слушателя, вызвав метод MBeanExporter.setNotificationListenerMappings после объявления слушателя уведомления.

При использовании конфигурации на основе XML или конфигурации аннотации @Bean для объявления MBeanExporter явно, операция setNotificationListenerMappings легко выполняется. Как показывает следующий код:

@Bean
public AnnotationMBeanExporter mBeanExporter() {
    Map<String, JmxNotificationListener> mappings = new HashMap<>();
    mappings.put("com.foo.spring-jmx-test:name=JmxService", new JmxNotificationListener());

    AnnotationMBeanExporter exporter = new AnnotationMBeanExporter();
    exporter.setRegistrationPolicy(RegistrationPolicy.IGNORE_EXISTING);
    exporter.setNotificationListenerMappings(mappings);
    return exporter;
}

Но при использовании @EnableMBeanExport, который автоматически определит AnnotationMBeanExporter, я не могу найти способ установить сопоставления слушателей для MBeanExporter. Итак, есть ли способ установить сопоставления слушателя уведомлений, когда я использую @EnableMBeanExport?

Спасибо.

1 Ответ

1 голос
/ 24 апреля 2019

@EnableMBeanExport регистрирует в контексте приложения бин AnnotationMBeanExporter, так что вы можете добавить его в какую-то свою конфигурацию и выполнить такую ​​регистрацию регистрации:

@Autowired
AnnotationMBeanExporter exporter;

@PostConstruct
public void init() {
    this.exporter.setNotificationListenerMappings(...);
}
...