2017-03-29 232 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

相關問題