在春季启动应用程序中如何将JMX MBean用于HikariCP?我有这样的代码:

@SpringBootApplication
public class App() { ... }


等班:

@Configuration
public class DatabaseCfg() {
@Bean
@ManagedOperation
public DataSource ds (@Value("${hikari.proprerties}") String config) {
HikariConfig hikariConfig = new HikariConfig(config);
return new HikariDataSource(hikariConfig);
}


在Java Mission Control(或JMX控制台)中,只能看到数据源托管的bean,而看不到用于HikariCP(link)的JMX MBean。是否可以添加它?

最佳答案

我相信在您的hikariConfig上,您需要设置一些其他设置。您需要注册MBean并在配置上设置池名称。

HikariConfig hiakriConfig = new HikariConfig(config);
hikariConfig.setRegisterMbeans(true);
kikariConfig.setPoolName("my-pool-1");


是的,您显然也可以通过属性来驱动它们。我不确定您是否将它们包括在属性文件中,因为它们未列出。另外请注意,您拼写的属性错误(@Value(“ $ {ds.proprerties}”))应该应该是(@Value(“ $ {ds.properties}”)),但我不确定您实际上如何命名变量和属性文件。您可能要仔细检查是否要在其中设置所有属性。

07-27 21:08