簡體   English   中英

如何在Spring Boot應用程序中配置HikariCP和Dropwizard / Coda-Hale指標

[英]How do I configure HikariCP and Dropwizard/Coda-Hale metrics in Spring Boot application

閱讀關於如何啟用Dropwizard指標的HikariCP wiki上的說明,它說只需在HikariConfig或HikariDatasource中配置MetricsRegistry實例。 問題是,在Spring Boot中,所有配置都由自動配置處理,因此我根本不會手動配置HikariCP池。 有關如何執行此操作的任何說明? 我是否必須通過定義自己的bean並在@Configuration文件中設置所有設置來完全覆蓋自動配置?

所以我能夠通過在java配置文件中手動配置HikariCP來解決這個問題。 這讓我得到了Spring Boot MetricRegistry的引用,然后我可以在HikariConfig中設置它。 這是我的配置類:

@Configuration
public class DatasourceConfiguration {

    @Value("${spring.datasource.username}")
    private String user;

    @Value("${spring.datasource.password}")
    private String password;

    @Value("${spring.datasource.url}")
    private String dataSourceUrl;

    @Value("${spring.datasource.driverClassName}")
    private String driverClassName;

    @Value("${spring.datasource.connectionTestQuery}")
    private String connectionTestQuery;

    @Autowired
    private MetricRegistry metricRegistry;

    @Bean
    public DataSource primaryDataSource() {
        Properties dsProps = new Properties();
        dsProps.setProperty("url", dataSourceUrl);
        dsProps.setProperty("user", user);
        dsProps.setProperty("password", password);

        Properties configProps = new Properties();
        configProps.setProperty("connectionTestQuery", connectionTestQuery);
        configProps.setProperty("driverClassName", driverClassName);
        configProps.setProperty("jdbcUrl", dataSourceUrl);

        HikariConfig hc = new HikariConfig(configProps);
        hc.setDataSourceProperties(dsProps);
        hc.setMetricRegistry(metricRegistry);
        return new HikariDataSource(hc);
    }
}

或者讓Spring Boot在@ Configuration / @ SpringBootApplication類中配置您的數據源@Autowire DataSource和MetricRegistry,並在@PostConstruct中將它們連接在一起:

@Autowired
private DataSource dataSource;

@Autowired
private MetricRegistry metricRegistry;


@PostConstruct
public void setUpHikariWithMetrics() {
    if(dataSource instanceof HikariDataSource) {
        ((HikariDataSource) dataSource).setMetricRegistry(metricRegistry);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM