1、我们一般选择的Datasoure工具类
 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", // deprecated "org.apache.commons.dbcp2.BasicDataSource" };

2、选择HikariDataSource为例,在内部的getConnection()方法,使用了延迟加载数据库驱动的方式。在new HikariPool(this)代码里->super(config)->initializeDataSource()->new DriverDataSource(jdbcUrl, driverClassName, dataSourceProperties, username, password)里有DriverManager.getDrivers();

3、jvm机会检查是否已经加载过类DriverManager,如果没有加载过,就加载类DriverManager,执行他的静态块,静态块里会执行ServiceLoader.load(Driver.class)获取所有jar包下META-INFO/services/java.sql.Driver文件里面的内容(SPI机制)。并进行类加载器加载这些各厂商的实现类(如com.mysql.jdbc.Driver)。

4、在加载com.mysql.jdbc.Driver类时,会执行他的静态块DriverManager.registerDriver(new Driver());。将自己的Driver注册到DriverManager的list中。

5、回到第2步,DriverManager类加载到JVM后,DriverManager.getDriver也就回去到了各厂商的数据库驱动。

6、根据yml配置的数据库类型,进行选择一种数据库驱动。

spring boot中mysql驱动加载过程相关推荐

  1. mysql驱动如何编写_解读MySQL驱动加载逻辑

    解读MySQL驱动加载逻辑 我们很早之前就知道最基础的JDBC编写,先执行Class.forName方法,加载MySQL驱动.但是为什么加载过驱动后,后续的接口层的调用就会自动切换到MySQL的相关代 ...

  2. Java虚拟机中 类的加载过程

    Java中 类的加载过程 例如下面的一段简单的代码 public class HelloWorld {public static void main(String[] args) {System.ou ...

  3. Spring源码分析4---IOC加载过程补充总结

    原文出自:http://cmsblogs.com IOC 之 获取验证模型 DTD 与 XSD 的区别 DTD(Document Type Definition),即文档类型定义,为 XML 文件的验 ...

  4. mysql驱动加载原理_老调重弹:JDBC系列 之 lt;驱动载入原理全面解析gt;

    前言 近期在研究Mybatis框架,因为该框架基于JDBC.想要非常好地理解和学习Mybatis,必需要对JDBC有较深入的了解.所以便把JDBC 这个东东翻出来.好好总结一番,作为自己的笔记,也是给 ...

  5. extjs5(03--项目中文件的加载过程)

    上一节中用sencha工具自动创建了一个项目,并且可以在浏览器中查看.现在我们来看看js类加载过程.如下图所示: 1、首先:浏览器中输入 localhost:1841 ,调用 index.html; ...

  6. Spring MVC中静态资源加载

    问题:MVC 静态资源加载,包括 js.css.image加载不出来 由于web.xml中dispatcherServlet中 url-pattern 使用 / 拦截所有访问,而导致静态资源也交给了D ...

  7. Spring Boot Admin2 @EnableAdminServer的加载

    其他相关文章: 1.Spring Boot Admin 参考指南 2.SpringBoot Admin服务离线.不显示健康信息的问题 首先根据官网的"快速开始",快速搭建一个Spr ...

  8. linux内核驱动识别过程,转载_ARM-Linux内核驱动加载过程思路

    Ø      取得驱动C文件并建立相应文件夹实现内核添加(以编译测试驱动程序为例) 1)       在相应的文件夹下面建立驱动文件夹 将C程序放入该驱动文件夹下 2)       创建或下载驱动C文 ...

  9. Spring Boot中的Properties

    文章目录 简介 使用注解注册一个Properties文件 使用属性文件 Spring Boot中的属性文件 @ConfigurationProperties yaml文件 Properties环境变量 ...

最新文章

  1. Node.js中文件上传与multer模块的应用
  2. 剑指offer十二:数值的n次方
  3. 安卓工控主板双网口有什么用途?
  4. .NET Core开源组件:后台任务利器之Hangfire
  5. 用python控制钉钉软件_Python—实现钉钉后台开发
  6. 第8章6节MonkeyRunner启动运行过程-启动Monkey 2
  7. 一周总结汇总_2016-09-18
  8. lua运行外部程序_Lua 协同程序(coroutine)
  9. java 多态 显式隐式,Java 构造器中的显式参数和this隐式参数
  10. java 过滤器(参数传递中文乱码)
  11. xmind使用教程思维导图
  12. MySQL呕血汇总--从基础到毕业【收藏篇】
  13. 惠普台式计算机系列,惠普星系列590-051 台式机 拆解
  14. 最小二乘法线性拟合介绍以及matlab实现
  15. 桌面图标有蓝底处理刚才
  16. java无法下载jnlp_java-JNLP下载期间FileNotFoundException
  17. Python之父愤然退位:再也无法忍受他们鄙视我的意见
  18. ckeditor富文本编辑器的使用和图片上传,复制粘贴图片上传
  19. 数据结构——环形队列的原理(模拟环形队列)
  20. nplayer链接onedrive失败的原因

热门文章

  1. 2023第十三届中国数字营销与电商创新峰会
  2. 电子商务信用如何提高?
  3. 移动端免费可用的BaaS接入方案
  4. 基于LBS(GPS)和ArcGIS的ITS智能交通 路况服务架构
  5. 定时任务Quartz的基本使用
  6. java response 远程 乱码_java-response-乱码解决
  7. matlab app设计步骤_如何从MATLAB/Simulink入手,系统地学习自动驾驶?
  8. 爬取网站目录工具githack
  9. win10提示没有注册类,什么都打不开了
  10. unity||控制代码执行的时间