यह पता चलता है कि ये कॉन्फ़िगरेशन गुण बहुत सीधे आगे हैं, लेकिन आधिकारिक दस्तावेज अधिक सामान्य है, इसलिए कनेक्शन पूल कॉन्फ़िगरेशन जानकारी के लिए विशेष रूप से खोज करते समय इसे खोजना मुश्किल हो सकता है।
Tomcat-jdbc के लिए अधिकतम पूल आकार सेट करने के लिए, इस प्रॉपर्टी को अपनी .properties या .yml फ़ाइल में सेट करें:
spring.datasource.maxActive=5
यदि आप चाहें तो आप निम्नलिखित का भी उपयोग कर सकते हैं:
spring.datasource.max-active=5
आप इस तरह से कोई भी कनेक्शन पूल प्रॉपर्टी सेट कर सकते हैं। यहाँ समर्थित गुणों की एक पूरी सूची हैtomcat-jdbc
।
यह समझने के लिए कि यह अधिक सामान्य रूप से कैसे काम करता है, आपको स्प्रिंग-बूट कोड में थोड़ा खुदाई करने की आवश्यकता है।
स्प्रिंग-बूट इस तरह से डेटा स्रोत का निर्माण करता है ( यहां देखें , लाइन 102):
@ConfigurationProperties(prefix = DataSourceAutoConfiguration.CONFIGURATION_PREFIX)
@Bean
public DataSource dataSource() {
DataSourceBuilder factory = DataSourceBuilder
.create(this.properties.getClassLoader())
.driverClassName(this.properties.getDriverClassName())
.url(this.properties.getUrl())
.username(this.properties.getUsername())
.password(this.properties.getPassword());
return factory.build();
}
DataSourceBuilder यह जानने के लिए ज़िम्मेदार है कि कौन सी पूलिंग लाइब्रेरी का उपयोग करना है, प्रत्येक क्लास क्लास की कक्षा की जाँच के लिए जाँच करके। यह तब DataSource का निर्माण करता है और इसे dataSource()
फ़ंक्शन पर लौटाता है ।
इस बिंदु पर, जादू उपयोग करने में किक करता है @ConfigurationProperties
। यह एनोटेशन स्प्रिंग को प्रीफिक्स CONFIGURATION_PREFIX
(जो है spring.datasource
) वाले गुणों की तलाश करने के लिए कहता है । प्रत्येक संपत्ति जो उस उपसर्ग के साथ शुरू होती है, वसंत उस संपत्ति के साथ डेटा स्रोत पर सेटर को कॉल करने का प्रयास करेगा।
बिलाव डेटा स्रोत का एक विस्तार है DataSourceProxy है, जो विधि है setMaxActive()
।
और यह है कि कैसे अपने spring.datasource.maxActive=5
सही ढंग से लागू हो जाता है!
अन्य कनेक्शन पूल के बारे में क्या
मैंने कोशिश नहीं की है, लेकिन यदि आप अन्य स्प्रिंग-बूट समर्थित कनेक्शन पूल (वर्तमान में HikariCP या कॉमन्स DBCP) में से एक का उपयोग कर रहे हैं, तो आपको उसी तरह से गुण सेट करने में सक्षम होना चाहिए, लेकिन आपको प्रोजेक्ट देखने की आवश्यकता होगी क्या उपलब्ध है यह जानने के लिए प्रलेखन।