- 数据库连接池统一在javax.sql.DataSource#getConnection()的实现类中实现
- Spring中通过javax.sql.DataSource#getConnection()的实现来获取数据库连接,所以如果是Druid连接池,则通过该方法从池中获取连接
- Spring事务管理中是通过org.springframework.jdbc.datasource.DataSourceUtils#getConnection()方法来获取数据库连接的,该方法保证了同一个线程上获取到是同一个connection
- org.springframework.jdbc.datasource.DataSourceUtils底层获取connection的逻辑:
- Mybatis内部获取数据库连接也是通过org.springframework.jdbc.datasource.DataSourceUtils#getConnection()获取