java - स्प्रिंग बूट अनुप्रयोग में मैं कैसे हिकारैप और ड्रॉपवार्जर/कोडा-हेल मैट्रिक्स को कॉन्फ़िगर कर सकता हूं




spring-boot connection-pooling (2)

ड्रैकवाजर मैट्रिक्स को सक्षम करने के तरीके के बारे में हिचकिआप विकी के निर्देशों को पढ़ना, यह केवल हिकाकारी कॉन्फ़िग या हिचकडाटासॉर में एक मेट्रिक्सआरजिस्ट्री इंस्टेंस को कॉन्फ़िगर करने के लिए कहता है। स्प्रिंग बूट में समस्या है, सभी कॉन्फ़िगरेशन को स्वतः कॉन्फ़िगरेशन द्वारा प्रबंधित किया जाता है, इसलिए मैं मैन्युअल रूप से हरिसीप पूल को कॉन्फ़िगर नहीं कर रहा हूं। यह कैसे करना है पर कोई निर्देश? क्या मुझे अपनी खुद की बीन को परिभाषित करके और सभी सेटिंग्स को एक @ कॉन्फ़िगरेशन फ़ाइल में सेट करके पूरी तरह से ऑटोकॉन्फ़िगरेशन को ओवरराइड करना है?


इसलिए मैं इसे जावा कॉन्फ़िगरेशन फ़ाइल में मैन्युअल रूप से HikariCP कॉन्फ़िगर करके यह पता लगाने में सक्षम था। इससे मुझे स्प्रिंग बूट मेट्रिकरेपिस्ट्री के संदर्भ प्राप्त करने की इजाजत थी, जिसे मैं बाद में हिकारी कॉन्फिग में सेट कर सकता था यहां मेरा कॉन्फ़िगरेशन क्लास है:

@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);
    }
}

या स्प्रिंग बूट को अपने डेटा स्रोत को कॉन्फ़िगर करें, @ @ @ @ SpringBootApplication वर्ग में डेटा स्रोत और मेट्रिकआरैविस्ट्री को हटाएं और @PostConstruct में उन्हें एक साथ तार दें:

@Autowired
private DataSource dataSource;

@Autowired
private MetricRegistry metricRegistry;


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




codahale-metrics