2017-03-29 177 views
1

如何使用JMX MBean中HikariCP在春季启动应用程序?我有这样的代码:如何在Spring引导应用程序中为HikariCP使用JMX MBean?

@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,而不是JMX MBean中HikariCP(link)。它也可以添加它吗?

+0

不要做任何事情你正试图超越Spring Boot,而是使用框架。春季启动配置数据源(它会自动执行此操作只添加'application.properties'适当的依赖和设置。 –

回答

0

我相信你的hikariConfig你需要设置一些额外的设置。您需要注册MBean并在配置上设置池名称。

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

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

+0

感谢名单!但它不工作。 ds.properties更名为hikari.properties以免误导。所有的属性是从该文件没有问题读 至于代码 hikariConfig.setRegisterMbeans(真)。 ,当你启动应用程序时会抛出这个已经注册的bean,因为默认情况下在Spring引导中启用了JMX(@SpringBootApplication注解)。 – BlackJonnie

相关问题