[000-01-015].第03节:SpringBoot中数据源的自动配置

我的后端学习大纲
SpringBoot学习大纲


1.数据访问流程:


2.搭建数据库开发场景:

2.1.导入JDBC场景:



2.2.分析自动导入的内容:


2.3.分析为何没有导入数据库驱动:

  • 1.因为人家也不知道我要用啥数据库,所以在自己决定用什么数据库后,就自己引入数据库驱动就可以了
  • 2.SpringBoot对引入的数据库有默认的版本库,想要修改版本可以有以下两个方式:

直接依赖引入具体版本(maven的就近依赖原则)

xml 复制代码
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
			 <version>5.1.49</version>
        </dependency>

重新声明版本(maven的属性的就近优先原则

xml 复制代码
  <properties>
        <java.version>1.8</java.version>
        <mysql.version>5.1.49</mysql.version>
    </properties>

3.分析自动配置类:



3.1.数据源的自动配置类:DataSourceAutoConfiguration

  • 1.修改数据源相关的配置:spring.datasource

  • 2.数据库连接池的配置是自己容器中没有DataSource才自动配置的;底层默认配置好的连接池是:HikariDataSource

    java 复制代码
    	@Configuration(proxyBeanMethods = false)
    	@Conditional(PooledDataSourceCondition.class)
    	@ConditionalOnMissingBean({ DataSource.class, XADataSource.class })
    	@Import({ DataSourceConfiguration.Hikari.class, DataSourceConfiguration.Tomcat.class,
    			DataSourceConfiguration.Dbcp2.class, DataSourceConfiguration.OracleUcp.class,
    			DataSourceConfiguration.Generic.class, DataSourceJmxConfiguration.class })
    	protected static class PooledDataSourceConfiguration
  • 3.对DataSourceConfiguration点入进去看看:


3.2. 事务管理器的自动配置类:DataSourceTransactionManagerAutoConfiguration:


3.3. JdbcTemplate的自动配置类:JdbcTemplateAutoConfiguration:

可以来对数据库进行crud


  • 可以修改这个配置项@ConfigurationProperties(prefix = "spring.jdbc")来修改JdbcTemplate

  • @Bean@Primary JdbcTemplate容器中有这个组件


3.4. jndi的自动配置类:JndiDataSourceAutoConfiguration


3.5.分布式事务相关的配置类:XA DataSourceAutoConfiguration:


4.修改配置项

yml 复制代码
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/db_account
    username: root
    password: ROOT
    driver-class-name: com.mysql.jdbc.Driver

5.做个小测试





6.更改数据源为Druid后产生的自动配置:

  • 2.引入场景:

  • 3.分析自动配置:


  • 1.扩展配置项:spring.datasource.druid

  • 2.DruidSpringAopConfiguration.class, 监控SpringBean的;配置项:spring.datasource.druid.aop-patterns

  • 3.DruidStatViewServletConfiguration.class, 监控页的配置:spring.datasource.druid.stat-view-servlet;默认开启

  • 4.DruidWebStatFilterConfiguration.class, web监控配置;spring.datasource.druid.web-stat-filter;默认开启

  • 5.DruidFilterConfiguration.class}) :所有Druid自己filter的配置:

    xml 复制代码
        private static final String FILTER_STAT_PREFIX = "spring.datasource.druid.filter.stat";
        private static final String FILTER_CONFIG_PREFIX = "spring.datasource.druid.filter.config";
        private static final String FILTER_ENCODING_PREFIX = "spring.datasource.druid.filter.encoding";
        private static final String FILTER_SLF4J_PREFIX = "spring.datasource.druid.filter.slf4j";
        private static final String FILTER_LOG4J_PREFIX = "spring.datasource.druid.filter.log4j";
        private static final String FILTER_LOG4J2_PREFIX = "spring.datasource.druid.filter.log4j2";
        private static final String FILTER_COMMONS_LOG_PREFIX = "spring.datasource.druid.filter.commons-log";
        private static final String FILTER_WALL_PREFIX = "spring.datasource.druid.filter.wall";
相关推荐
苹果醋31 小时前
React源码02 - 基础知识 React API 一览
java·运维·spring boot·mysql·nginx
Hello.Reader1 小时前
深入解析 Apache APISIX
java·apache
盛派网络小助手2 小时前
微信 SDK 更新 Sample,NCF 文档和模板更新,更多更新日志,欢迎解锁
开发语言·人工智能·后端·架构·c#
菠萝蚊鸭2 小时前
Dhatim FastExcel 读写 Excel 文件
java·excel·fastexcel
旭东怪2 小时前
EasyPoi 使用$fe:模板语法生成Word动态行
java·前端·word
007php0072 小时前
Go语言zero项目部署后启动失败问题分析与解决
java·服务器·网络·python·golang·php·ai编程
∝请叫*我简单先生2 小时前
java如何使用poi-tl在word模板里渲染多张图片
java·后端·poi-tl
ssr——ssss2 小时前
SSM-期末项目 - 基于SSM的宠物信息管理系统
java·ssm
一棵星2 小时前
Java模拟Mqtt客户端连接Mqtt Broker
java·开发语言
鲤籽鲲3 小时前
C# Random 随机数 全面解析
android·java·c#