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

我的后端学习大纲

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_accountusername: rootpassword: ROOTdriver-class-name: com.mysql.jdbc.Driver

5.做个小测试

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


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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

衡石科技BI的API如何授权文档解析

授权说明​ 授权模式​ 使用凭证式&#xff08;client credentials&#xff09;授权模式。 授权模式流程说明​ 第一步&#xff0c;A 应用在命令行向 B 发出请求。 第二步&#xff0c;B 网站验证通过以后&#xff0c;直接返回令牌。 授权模式结构说明​ 接口说明​ 获取a…

如何禁止电脑访问网站

一、修改Hosts文件 找到Hosts文件&#xff1a;在Windows系统中&#xff0c;Hosts文件通常位于C:\Windows\System32\drivers\etc\目录下。 编辑Hosts文件&#xff1a;以管理员身份打开记事本或任意文本编辑器&#xff0c;然后找到并打开Hosts文件。 添加禁止访问的域名&#…

SSRF漏洞(二)

本文仅作为学习参考使用&#xff0c;本文作者对任何使用本文进行渗透攻击破坏不负任何责任。 前言&#xff1a; 本文主要讲解依靠phpstudy搭建pikachu靶场。 phpstudy下载使用以及搭建本地SQL labs靶场 SSRF漏洞&#xff08;一&#xff09; 靶场搭建。 靶场链接&#xff1…

Linux:NAT等相关问题

目录 1&#xff1a;NAT背景 2&#xff1a;NAT IP转换过程 3&#xff1a;NATP 4&#xff1a;正向代理 5&#xff1a;反向代理 6&#xff1a;NAT和代理服务器 应用场景 实现方法 1&#xff1a;NAT背景 IPv4地址耗尽&#xff1a;随着互联网的迅速发展&#xff0c;连接到…

LMDeploy 量化部署实践

一、环境配置见&#xff1a;https://github.com/InternLM/Tutorial/blob/camp3/docs/L2/LMDeploy/readme.md 验证LMDeploy启动InternLM2_5-7b-chat conda activate lmdeploy lmdeploy chat /root/models/internlm2_5-7b-chat二、量化显存计算 参数计算&#xff1a; LMDeploy …

盘点15款工程软件,为制造业选型提供参考!

本文将盘点15款工程软件&#xff0c;供企业选型参考。 工程软件就如同工程领域的得力助手&#xff0c;能让工程建设的各个环节都变得更加高效、精准。 对于工程企业来说&#xff0c;如果没有合适的工程软件&#xff0c;就像工匠没有趁手的工具&#xff0c;难以打造出精良的作品…

linux查看系统安装时间命令,找出Linux操作系统(OS)安装日期和时间

你可能想知道你的计算机上何时安装了Linux操作系统,即OS的安装日期和时间,使用tune2fs、dumpe2fs、ls、basesystem、setup、setuptool命令能出来结果。请注意,如果你从模板安装了操作系统,那么它将显示模板生成日期,而不是实际操作系统安装日期。 方法1:如何使用tune2fs…

LayerNorm介绍

简介 Layer Normalization (LayerNorm) 是一种归一化技术&#xff0c;常用于深度学习模型中&#xff0c;特别是在 Transformer 模型中。 Layer normalization 是在特征维度上进行标准化的&#xff0c;而不是在数据批次维度上。 目的 收敛模型数据数值差异&#xff0c;缓解内…

GD32F4xx---RTC初始化设置及闹钟方式实现秒中断讲解

GD32F4xx—RTC初始化设置及闹钟方式实现秒中断讲解 1、下载链接:源码工程 一、概述 GD32F4x的RTC例程网上资源较少,详细阅读用户手册后做出如下配置。RTC模块提供了一个包含日期(年/月/日)和时间(时/分/秒/亚秒)的日历功能。除亚秒用二进制码显示外,时间和日期都以BC…

『功能项目』新输入系统【06】

我们打开上一篇04禁止射线穿透行为项目&#xff0c; 本章要做的事情是在Unity编辑器中添加 新输入系统 实现主角在场景中鼠标右键可以使主角 转向。 本次项目需要让Unity引擎重新启动所以先保存当前项目 再次打开项目后&#xff0c; 修改为Both 点击Apply前注意要先保存项目&a…

JVM上篇:内存与垃圾回收篇-07-方法区

笔记来源&#xff1a;尚硅谷 JVM 全套教程&#xff0c;百万播放&#xff0c;全网巅峰&#xff08;宋红康详解 java 虚拟机&#xff09; 文章目录 7. 方法区7.1. 栈、堆、方法区的交互关系7.2. 方法区的理解7.2.1. 方法区在哪里&#xff1f;7.2.2. 方法区的基本理解7.2.3. HotSp…

【Linux】命令简介------迅速掌握Linux命令

目录 Linux 命令 &#x1f354; ls命令 &#x1f354; cd 和 pwd命令 &#x1f354; 相对路径和绝对路径 &#x1f354; 文件/文件夹的创建以及文件内容的浏览 &#x1f354; 文件的复制,移动和删除 &#x1f354; 文件的查找 &#x1f354; grep 和管道 &#x1f354…

@antv/g6 业务场景:流程图

1、流程图是流经一个系统的信息流、观点流或部件流的图形代表。在企业中&#xff0c;流程图主要用来说明某一过程。这种过程既可以是生产线上的工艺流程&#xff0c;也可以是完成一项任务必需的管理过程。业务场景流程图如下&#xff1a; 2、绘制流程图的 Tips 流程图一般是用…

奇安信渗透测试岗位三面经验分享

吉祥知识星球http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247485367&idx1&sn837891059c360ad60db7e9ac980a3321&chksmc0e47eebf793f7fdb8fcd7eed8ce29160cf79ba303b59858ba3a6660c6dac536774afb2a6330#rd 《网安面试指南》http://mp.weixin.qq.com/s?…

Python深浅拷贝

0、前置知识 数据类型&#xff1a;可变类型、不可变类型 不可变类型&#xff1a;一旦创建就不可修改的对象&#xff0c;包括字符串、元组、数值类型&#xff08;整型、浮点型&#xff09; 该对象所指向的内存中的值不能被改变。 当改变某个变量时候&#xff0c;由于其所指的…

【MySQL 12】事务管理 (带思维导图)

文章目录 &#x1f308; 一、事务的基本概念⭐ 1. 事务是什么⭐ 2. 事务的特性 &#x1f308; 二、事务的版本支持&#x1f308; 三、事务的提交方式⭐ 1. 查看事务的提交方式⭐ 2. 设置事务的提交方式 &#x1f308; 四、事务的特性证明⭐ 1. 事务的常规操作⭐ 2. 证明事务的原…

进程间的通信

建立两个.c 建立子父进程&#xff0c;父进程发送消息到队列&#xff0c;子进程读取队列&#xff0c;另一个同样。 #include <myhead.h> struct msga {long mtype;char mtext[1024]; }; #define len sizeof(struct msga)-sizeof(long) int main(int argc, const char *arg…

烂大街的测试左移和右移

01 测试左移与右移的定义 通俗的讲&#xff1a;左移是往开发阶段移&#xff0c;右移是往发布之后移。 正常测试&#xff1a;提测后的测试工作——到——发布验证完成阶段。 测试左移&#xff1a;提测之前的测试。 如&#xff1a;代码单元测试&#xff0c;代码质量检测&#x…

python-读取word中的内容

doc Document(rD:\xxxx\xxxx\xxx.docx) #读取word中所有内容 for p in doc.paragraphs print(p,p.text) #读取指定段落中的所有run(文字块) for run in doc.paragraphs[1].runs: print(run,run.text) #读取word中所有表格内容 for 表格 in doc.tables: print(表格) for 行 in …

产品经理有没有必要考pmp证书?

可以给一个总结&#xff1a;想提升自己的可以考&#xff0c;单纯奔着考证去的&#xff0c;没必要考&#xff01; 如果产品经理的相关证件&#xff0c;比如 npdp 之类的&#xff0c;都已经拿到手了&#xff0c;并且觉得自己现阶段工作比较满意&#xff0c;想提升自己更上一层楼…