自动检测

时间:2016-04-05 11:06:18

标签: java spring spring-boot

Spring-boot文档仅提到它将从类路径中自动检测要使用的连接池,但默认情况下使用哪种实现?目前,在我的项目中,我有Commons DBCP所以我认为它将是BasicDataSource

从spring-boot文档:

spring.datasource.type= # Fully qualified name of the connection pool implementation to use. By default,
 it is auto-detected from the classpath.

1 个答案:

答案 0 :(得分:3)

org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder负责自动检测DataSource实现。它的javadoc说:

  

使用common构建DataSource的便捷类   实现和属性。如果是Tomcat,HikariCP或Commons DBCP   在类路径上将选择其中一个(按顺序使用   Tomcat第一次)

自动检测实现列表

private static final String[] DATA_SOURCE_TYPE_NAMES = new String[] {
    "org.apache.tomcat.jdbc.pool.DataSource",
    "com.zaxxer.hikari.HikariDataSource",
    "org.apache.commons.dbcp.BasicDataSource",
    "org.apache.commons.dbcp2.BasicDataSource" };

因此,如果您的项目在类路径中有Commons DBCP且它不包含Tomcat和HikariCP实现,那么将使用BasicDataSource