Spring Boot/Spring Data JPA:spring.datasource.driverClassName属性读取位置
寻找spring.datasource.driverClassName属性的读取代码位置
要找到spring.datasource.driverClassName的读取代码,你需要将目光从spring-data-jpa相关JAR转移到Spring Boot的自动配置模块及数据源配置类上,具体位置如下:
查看
org.springframework.boot:spring-boot-autoconfigure:2.1.7.RELEASE.jar
这个JAR是Spring Boot自动配置的核心,其中的org.springframework.boot.autoconfigure.jdbc.DataSourceProperties类是关键:- 该类通过
@ConfigurationProperties(prefix = "spring.datasource")注解绑定了所有spring.datasource前缀的配置属性; driverClassName是类中的一个成员字段,配有对应的getter/setter方法,负责接收配置文件中的属性值。
- 该类通过
查看同JAR下的
DataSourceAutoConfiguration类
这个自动配置类会利用DataSourceProperties实例中的属性值(包括driverClassName)来初始化和配置数据源Bean,是属性值最终生效的入口。若使用特定数据源实现(如HikariCP、Tomcat JDBC),查看对应自动配置类
比如默认的HikariCP,同JAR下的HikariDataSourceConfiguration会读取DataSourceProperties中的driverClassName,并将其设置到Hikari数据源实例中。
补充说明
你之前查看的两个JAR找不到目标代码的原因:
spring-boot-starter-data-jpa是依赖管理starter,仅负责引入所需依赖,本身无业务代码;spring-data-jpa专注于JPA Repository的实现逻辑,不负责数据源配置属性的读取,数据源配置是Spring Boot自动配置模块的职责。
内容的提问来源于stack exchange,提问作者samshers
相关产品推荐
相关产品推荐

