我有一个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