在春季启动应用程序中如何将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}”)),但我不确定您实际上如何命名变量和属性文件。您可能要仔细检查是否要在其中设置所有属性。