Spring Boot 中数据源自动配置的核心流程
Spring Boot 中数据源自动配置的核心流程
1. 自动配置类的入口:DataSourceAutoConfiguration
它是 Spring Boot 内置的自动配置类,负责完成数据源(比如数据库连接池)的自动装配。
2. 开启配置属性绑定:@EnableConfigurationProperties
自动配置类上会加@EnableConfigurationProperties(DataSourceProperties.class)注解:
- 作用:开启属性类与配置文件的绑定功能,让
DataSourceProperties类能读取配置文件中的参数。
3. 属性类:DataSourceProperties
这是一个属性绑定类,类上会加@ConfigurationProperties(prefix = "spring.datasource")注解:
- 作用:将配置文件中以
spring.datasource开头的配置项(比如url、username),自动绑定到这个类的属性(private String url;、private String username;)上。
4. 配置文件:application.properties/application.yml
我们在配置文件中写的数据库配置(比如):
properties
spring.datasource.url=jdbc:mysql://localhost:3306/spring_tx
spring.datasource.username=root
spring.datasource.password=123456
会被DataSourceProperties类读取并绑定到对应的属性中。
5. 最终创建组件:数据源(比如HikariDataSource)
自动配置类(DataSourceAutoConfiguration)会基于DataSourceProperties中的配置,自动创建数据源组件(默认是 Hikari 连接池),并注入到 Spring 容器中。
同时,其他依赖数据源的类(比如JdbcConnectionDetails),可以直接从DataSourceProperties中获取账号、密码等配置信息。
二、总结逻辑
整个流程的核心是 “配置文件 → 属性类 → 自动配置类 → 组件”:
- 配置文件写参数;
@ConfigurationProperties把参数绑定到属性类;@EnableConfigurationProperties让自动配置类能使用属性类;- 自动配置类基于属性类的参数,创建并装配组件到容器中。
