程序员码农|SpringBoot数据库配置源码解析:自动配置内部实现解析( 四 )
@ConditionalOnClass 指定必须在 classpath 中存在 HikariDataSource 才会进行实例化操作 。 而该类由 spring- boot-starter-jdbc 默认将其引入 , 因此当引入该 starter 时 , 只有 Hikari的自动配置满足条件 , 会被实例化 。
@ConditionalOnProperty 注 解 可 以 通 过 在 application.properties 文 件 中 配 置 key 为spring.datasource.type,值为com.zaxxer.hikari.HikariDataSource的配置项用来明确启动使用 Hikari 数据源 。 matchlfMissing 为 true, 说明如果没有配置则默认操作生效 。
Hikari 类 内 部 的 Bean 代 码 很 简 单,主 要 是 调 用 DataSourceConfiguration 的createData-Source 方法实例化 HikariDataSource 。
在 createDataSource 方法中 , 使用 DataSourceProperties 的 initializeDataSourceBuilder来初始化 DataSourceBuilder,源码如下 。public DataSourceBuilder> initializeDataSourceBuilder() {return DataSourceBuilder . create(getClassLoader()). type (getType()) .driver-ClassName(determineDriverClassName()). url(determineUrl()). username (determineUsername()) . password(determinePassword());}}
initializeDataSourceBuilder 方 法 是 通 过 DataSourceBuilder 的 create 创 建 了DataSource-Builder 对象 , 并依次设置数据源类型、驱动类名、连接 url、 用户名和密码等信息 。 其中上述部分默认参数获取的方法名均为 determine 开头 , 也就是说在获取的过程中进行了一些推断及默认值的设定 , 该实现逻辑很简单 , 读者朋友可以自行查看 。
createDataSource 中 获 得 了 DataSourceBuilder 之 后,设 置 其 type 为HikariDataSource.class 便进行了 HikariDataSource 的初始化 。 在 dataSource 方法中获得该初始化对象 , 并设置了连接池的名字 , 注入容器中 。
PooledDataSourceConfiguration 最后导入了 DataSourceJmxConfiguration 配置类 , 主要用于配置与数据源相关的 MBean,非核心内容就不再展开了 。
至此 , 关于 DataSourceAutoConfiguration 自动配置 相关的内容便讲解完了 。
- 下篇文章给大家讲解的是Jdbc Template 实例化操作;
- 觉得文章不错的朋友可以转发此文关注小编;
- 感谢大家的支持!
推荐阅读
- 程序员|京东双十一购物三大谜团:程序员买整盒口红 95后买老字号
- |阿里P7程序员:年包200万,拿到腾讯11级offer,跳吗
- 程序员|咕泡学院深圳站丨万有引力不如你们给力
- |某度程序员:入职3年周末从没加过班,公司很佛系,像养老公司
- 互联网|天猫双11:女生一天买了几十亿,程序员最爱还是格子衫
- 当当|当当1024程序员节大数据:人工智能类图书最受欢迎
- 程序员|开课吧:解密程序员的骄傲与低调,做好数字化人才的“摆渡人”
- 程序员节|1024程序员节在长沙举办
- 技术编程|华为码农把python入门知识点整理成漫画书了,让人茅塞顿开
- CSDN|@程序员,CSDN卫衣、背包、鼠标垫……福利来啦!!!