栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringBoot:数据访问之数据库场景的自动配置原理---- 17

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringBoot:数据访问之数据库场景的自动配置原理---- 17

      • 数据源的自动配置
        • 导入JDBC场景
        • 自动配置原理
          • 修改配置项测试代码

数据源的自动配置 导入JDBC场景

sdsds引入 spring-boot-starter-data-jdbc 场景

 
	org.springframework.boot 
	spring-boot-starter-data-jdbc 


sdsd[注1]:JDBC场景并没有导入数据库驱动,这是因为不确定我们要用哪种数据库,因此需要我们自己导入版本,接下来以mysql为例。

 
	mysql 
	mysql-connector-java 

sdsd[注2]:SpringBoot默认数据库驱动是 8.0.22,注意要和自己的数据库驱动对应,其实也不是说版本一定一致,比如我们的mysql版本是5.5.15,而我们通过maven.repository用5开头的数据库驱动即可,而最新版的数据库驱动连接方式不一样,会出现错误。
错误代码:type: com.zaxxer.hikari.HikariDataSourceLoading class com.mysql.jdbc.Driver'. This is deprecated. The new driver class iscom.mysql.cj.jdbc.Driver’. The driver is automatically registered Loading class com.mysql.jdbc.Driver'. This is deprecated. The new driver class iscom.mysql.cj.jdbc.Driver’. The driver is automatically registered
sdsdsddsdsdsdsdsd

 
	mysql 
	mysql-connector-java 
5.1.49 
自动配置原理

sdsds自动配置相关:spring-boot autoconfigure:2.4.0 ==> spring-boot-autoconfigure-2.4.0.jar ==>org.springframework.boot.autoconfigure ==> jdbc
sddsdssdsdddsdsddssdsd
sdsdsDataSourceAutoConfiguration 数据源(连接池)自动配置:

sdsddsss①、@EnableConfigurationProperties(DataSourceProperties.class) ==> 修改数据源相关的配置:spring.datasource
ssddsd
sdsddsss②、数据库连接池的配置, 只有当容器中没有DataSource才自动配置的,如果有就用我们自定义的。
sdssdsd
sdsddsss③、数据库一引进jdbc场景就会自动引入 HikariDataSource(我们通过文章开始的图显示导入的jar包就可以发现这一点)(当然通过DataSourceAutoConfiguration 也可以看出这一点)
sdsddss
sdsdsDataSourceTransactionManagerAutoConfiguration 事务管理器的自动配置

sdsdsJdbcTemplateAutoConfiguration: JdbcTemplate的自动配置,可以来对数据库进行crud

sdsddsss①、修改JdbcTemplate相关的配置:spring.jdbc
sdsdssddsss

@ConfigurationProperties(prefix = "spring.jdbc")
public class JdbcProperties { private final JdbcProperties.Template template = new JdbcProperties.Template(); ...}

sdsddsss②、容器中有JdbcTemplate
sdssdsdd
sdssdsdd
sdsdsJndiDataSourceAutoConfiguration: jndi的自动配置

sdsdsXADataSourceAutoConfiguration: 分布式事务相关的

修改配置项测试代码
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/girls
    username: root
    password: root
    driver-class-name: com.mysql.jdbc.Driver
  jdbc:
    template:
      query-timeout: 3
    @Test
    void contextLoads() {
//        Object object = jdbcTemplate.queryForObject("seclect * from admin");
        jdbcTemplate.queryForList("select * from admin");
        Long aLong = jdbcTemplate.queryForObject("select Count(*) from admin", Long.class);
        log.info("记录总数:{}",aLong);
    }

sdsds结果:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/532123.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号