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

news2024/9/23 19:20:04

我的后端学习大纲

SpringBoot学习大纲


1.数据访问流程:

在这里插入图片描述


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

2.1.导入JDBC场景:

在这里插入图片描述
在这里插入图片描述


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

在这里插入图片描述


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

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

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

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
			 <version>5.1.49</version>
        </dependency>

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

  <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
    	@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.修改配置项

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的配置:
    在这里插入图片描述
        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";
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2090482.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

92. UE5 RPG 使用C++创建GE实现灼烧的负面效果

在正常游戏里&#xff0c;有些伤害技能会携带一些负面效果&#xff0c;比如火焰伤害的技能会携带燃烧效果&#xff0c;敌人在受到伤害后&#xff0c;会接受一个燃烧的效果&#xff0c;燃烧效果会在敌人身上持续一段时间&#xff0c;并且持续受到火焰灼烧。 我们将在这一篇文章里…

PTA L1-028 判断素数

L1-028 判断素数&#xff08;10分&#xff09; 本题的目标很简单&#xff0c;就是判断一个给定的正整数是否素数。 输入格式&#xff1a; 输入在第一行给出一个正整数N&#xff08;≤ 10&#xff09;&#xff0c;随后N行&#xff0c;每行给出一个小于的需要判断的正整数。 …

vscode里调试python3.6的配置

vscode里需要降级如下插件&#xff1a; ● Python v2022.8.1 ● Pylance v2022.6.30 ● Python Debugger v2023.1.XXX (pre-release version | debugpy v1.5.1)

vue-echarts :知识图谱可视化,动态更新 动态赋值series,更新options

<template><div style="display: flex;align-items: center;justify-content: space-between;"><

Java语言程序设计基础篇_编程练习题*17.10 (分割文件)

目录 题目&#xff1a;*17.10 (分割文件) 代码示例 输出结果 题目&#xff1a;*17.10 (分割文件) 假设希望在 CD-R 上备份一个大文件(例如&#xff0c;一个 10GB 的 AVI文件)。可以将该文件分割为几个小一些的片段&#xff0c;然后独立备份这些小片段。编写一个工具程序&am…

Taro 微信小程序 分页上拉加载

需求&#xff1a; 页面表头及上面部分都固定&#xff0c;表格数据部分可以滚动&#xff0c;支持分页&#xff0c;上拉加载下一页数据 如果是最后一页需判断一下&#xff0c;上拉不再继续加载数据 效果&#xff1a; template&#xff1a; <scroll-view class"db-det…

BodySlide and Outfit Studio 身形编辑器和模型编辑器v4.7.1汉化版以及使用和汉化方法

感谢小莫汉化&#xff01; 汉化版下载地址&#xff1a;https://pan.quark.cn/s/50987aa39805

《NLP自然语言处理》—— 关键字提取之TF-IDF算法

文章目录 一、TF-IDF算法介绍二、举例说明三、示例&#xff1a;代码实现四、总结 一、TF-IDF算法介绍 TF-IDF&#xff08;Term Frequency-Inverse Document Frequency&#xff09;是一种用于信息检索与文本挖掘的常用加权技术。TF-IDF是一种统计方法&#xff0c;用以评估一个词…

【HarmonyOS NEXT开发】鸿蒙界面开发起步,ArkUI(方舟开发框架)介绍,知识点详解

【HarmonyOS NEXT开发】鸿蒙界面开发起步&#xff0c;ArkUI(方舟开发框架)介绍&#xff0c;知识点详解 大纲 主题&#xff1a;鸿蒙界面开发起步&#xff0c;ArkUI(方舟开发框架)介绍&#xff0c;知识点详解。、 内容摘要&#xff1a;带领直播课的观众一步步熟悉ArkUI的基本框…

语言质量评价对应用翻译质量的影响——以美国市场为例

在竞争激烈的移动应用程序世界中&#xff0c;尤其是在美国这样一个庞大而多样化的市场中&#xff0c;翻译的质量可以决定应用程序的成功与否。语言质量评价对应用翻译的整体质量有着深远的影响&#xff0c;其重要性怎么强调都不为过。 语言质量评价的重要性 语言质量评估是评…

3D打印引领制造业新纪元

增材制造技术&#xff0c;俗称3D打印&#xff0c;作为现代科技发展的璀璨明珠&#xff0c;正稳步迈向制造业舞台的中央&#xff0c;重塑着传统制造行业的格局&#xff0c;一个全新的制造纪元正在悄然到来。 3D打印技术&#xff0c;其核心在于通过精准控制的逐层堆积过程&#x…

SLAM ORB-SLAM2(29)PnP估计姿态

SLAM ORB-SLAM2&#xff08;29&#xff09;PnP估计姿态 1. PnP问题2. EPnP算法2.1. 计算4对控制点的世界坐标2.2. 计算齐次质心坐标2.3. 计算4对控制点的相机坐标2.3.1. 构造M矩阵2.3.2. 计算 M T M M^TM MTM的0特征值对应的特征向量2.3.3. 计算零空间的秩2.3.4. 计算线性组合的…

Openldap可视化工具PhpLdapAdmin服务配置

Openldap可视化工具PhpLdapAdmin服务配置 1、创建组 Create a child entry ------> Generic: Posix Group ------> New Posix Group ------> Create Object 1).Create a child entry 2).Generic: Posix Group 3).New Posix Group 4).Create Object 5).查看创建的组…

嵌入式软件--PCB DAY 4

1.原理图重点 &#xff08;1&#xff09;CH340N为什么有那么多组极。 &#xff08;2&#xff09;TYPEC接口&#xff0c;得到几V的供电&#xff0c;为什么&#xff1f; &#xff08;3&#xff09;P0为什么上拉。 &#xff08;4&#xff09;单片机烧录时要干什么 &#xff0…

【Zookeeper】小白基础入门

1 Zookeeper入门 1.1 概述 1.2 特点 1.3 数据结构 1.4 应用场景 统一命名服务 统一配置管理 统一集群管理 服务动态上下线 软负载均衡 1.5 下载地址 2 Zookeeper本地安装 2.1 本地模式安装 2.2 配置参数解读 3 Zookeeper集群操作 3.1 集群操作 3.1.1 集群安装 3.1.2 选举…

Linux 数据结构 树知识

树&#xff1a;只有一个前驱&#xff0c;但是可以有多个后继 根节点&#xff1a;最顶层节点&#xff08;没有前驱&#xff09; 分支节点&#xff1a;有前驱也有后继 叶子节点&#xff1a;没有后继的节点 层&#xff1a;根节点所在为第一层&#xff0c;每过一个…

【uniapp 解决h5 uni.saveFile 不生效】2种方法解决

用uni.saveFile h5报错 saveFile API saveFile is not yet implemented 查看文档发现不支持h5 解决方法&#xff1a; 这个我用了pc 端一样的方法用a标签来下载保存代码如下&#xff1a; 第一种&#xff1a; const a document.createElement(a);a.href filePath; //filePath …

sqli-labs靶场通关攻略(51-60)

Less-51 1、判断闭合方式 输入?sort1 -- 页面闭合成功 2、查询数据库 输入?sort-1 and updatexml(1,concat(1,database()),1) -- 3、查询数据库中的表 输入?sort-1 and updatexml(1,concat(1,(select group_concat(table_name) from information_schema.tables where …

北京青蓝智慧科技2024数博会:共谋数字经济新篇章

在数字化的浪潮下&#xff0c;大数据企业如雨后春笋般涌现&#xff0c;而应用场景更是无处不在。 伴随着“数博十年”的盛约&#xff0c;新老朋友纷纷涌向贵阳国际会议展览中心&#xff0c;于8月28-30日共襄盛举。 2024中国国际大数据产业博览会&#xff08;简称“数博会”&a…

Django国际化和本地化

【图书介绍】《Django 5企业级Web应用开发实战&#xff08;视频教学版&#xff09;》_django 5企业级web应用开发实战(视频教学版)-CSDN博客 《Django 5企业级Web应用开发实战&#xff08;视频教学版&#xff09;》(王金柱)【摘要 书评 试读】- 京东图书 (jd.com) 本节主要介…