我有一個Spring Boot應用程序連接到兩個單獨的數據庫。雖然爲了自定義Tomcat JDBC連接池設置I had to manually configure it(因爲通過定義多個數據源,Boot自動配置被忽略,並且Spring Boot不會讀取),所有工作正常(我遵循the docs和a tutorial中的步驟)來自application.properties的tomcat特定屬性)。如何在Spring Boot中使用多個數據源時設置多個連接池?
當我兩個數據源的配置過程中使用調試器,我看到兩個org.apache.tomcat.jdbc.pool.DataSource實例都在DataSource.PoolProperties [「名稱」]條目相同的連接池。 在調試器中查看下面的截圖,每個dataSource()方法都在單獨的配置類中進行配置。請注意,定義了相同的連接池。
然而,從我看到使用JConsole + tomcat的JMX什麼,只有一個連接池,其中有主數據庫配置的詳細信息(URL,證書,見下文)。
由於Spring內部有多層抽象,所以我很難調試它。我有Eclipse Class Decompiler plugin,我通常使用它來查看Spring邏輯,但在這種情況下,數據源的初始化代碼在Bean註冊時發生,而不是在Spring Boot實際使用它們設置數據源時發生。
底線是,你能不能幫我明白了:
- 爲什麼只有一個連接池
- 我如何使用兩個連接池,一個用於每個數據源
- ,其中在春節代碼看看更多細節如何工作
對於第二個問題,有一個related question,但沒有答案。有another question這是一個誤報,而another one這是關於春天,而不是春季啓動,所以請不要報告這個愚蠢。
詳細信息您可以附上數據源創建方法的完整來源是什麼?圖片被裁剪邊緣。 – user3007501