Как использовать MBeanProxyFactoryBean с динамическим objectName в Spring Framework? - PullRequest
0 голосов
/ 19 декабря 2018

Я хочу использовать spring для управления приложением через mbeans, но целевое приложение mbean objectName является динамическим, то есть оно создает новые mbeans и уничтожает некоторые mbean при его запуске.

@Configuration
class JmxConf(@Value("\${url.kafka-connect-jmx}") private val connectJmxUrl: String) {

@Bean("connectMBeanServerConnection")
fun mBeanServerConnectionFactory(): MBeanServerConnectionFactoryBean =
        MBeanServerConnectionFactoryBean().apply {
            this.setServiceUrl(connectJmxUrl)
        }

@Bean("connectMBeanProxy")
fun mBeanProxyFactory(connectMBeanServerConnection: MBeanServerConnection): MBeanProxyFactoryBean =
        MBeanProxyFactoryBean().apply {
            this.setServer(connectMBeanServerConnection)
            this.setProxyInterface(BinlogReaderMetricsMXBean::class.java)
            this.setObjectName("debezium.mysql:type=connector-metrics,context=binlog,server=jf")
        }
}

IЯ сейчас использую MBeanProxyFactoryBean, но, кажется, не могу решить динамическое имя объекта.

Целевое имя объекта mbean:

debezium.mysql:type=connector-metrics,context=binlog,server=<database.server.name>

Список <database.server.name> при добавлении или удалении, когда приложениеработает.

Есть предложения по этому поводу?

...