【基础篇】四、SpringBoot整合第三方技术

news2024/11/19 13:33:20

文章目录

  • 1、SpringBoot整合Junit
  • 2、SpringBoot整合MyBatis
  • 3、SpringBoot整合MyBatisPlus
  • 4、SpringBoot整合Druid

在这里插入图片描述

1、SpringBoot整合Junit

步骤:

  • 导入测试对应的starter
  • 测试类使用@SpringBootTest修饰
  • 使用自动装配的形式添加要测试的对象
@SpringBootTest
class SpringbootJunitApplicationTests {

	@Autowired
	private BookService bookService;
	
	@Test
	public void testSave(){
		bookService.save();
	}
}

关于导入测试的starter,这一步在创建springboot工程时,这个依赖是默认自动加好的,但如果是自己手动创建的Maven工程,就得自己引入一下spring-boot-starter-test的起步依赖。

在这里插入图片描述

关于@SpringBootTest注解:

  • 类型:测试类注解
  • 位置:测试类定义上方
  • 作用:设置JUnit加载的SpringBoot启动类

关于classes属性:

在这里插入图片描述

报错原因是测试类找不到引导类了,即如果测试类在SpringBoot启动类的包或子包中,可以省略启动类的设置,也就是省略classes的值:

  • 测试类如果存在于引导类(启动类)所在包或子包下,则无需指定引导类
  • 反之需要通过classes属性来指定引导类

或者使用报错中的@ContextConfiguration注解也可以实现:

在这里插入图片描述

2、SpringBoot整合MyBatis

先复习Spring整合MyBatis流程:(核心配置、SQL映射)

在这里插入图片描述

使用SpringBoot整合MyBatis则是:
  • 创建模块时勾选MyBatis和MySQL的技术集(用什么技术就勾什么技术,一个勾就是有一个坐标 ==> boot的一个特色)

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

  • 设置数据源参数

在这里插入图片描述

到此,整合完成,整合第三方框架都是统一的:导入相关依赖、添加相关配置。接下来定义个Mapper接口简单测试一下:

在这里插入图片描述

单元测试中看下效果:

在这里插入图片描述

3、SpringBoot整合MyBatisPlus

使用官网版地址创建模块,技术集勾选时找不到MyBatisPlus,可使用阿里云版地址。这里直接导入MP的坐标,不再使用勾选的方式:

<dependency>
	<groupId>com.baomidou</groupId>
	<artifactId>mybatis-plus-boot-starter</artifactId>
	<version>3.4.3</version>
</dependency>
<!--由于SpringBoot中未收录MyBatis-Plus的坐标版本,需要指定对应的Version-->

在这里插入图片描述

相关配置:

spring:
  datasource:
  driver-class-name: com.mysql.cj.jdbc.Driver
  url: jdbc:mysql://localhost:3306/ssm_db
  username: root
  password: root
# 注意,使用MP不再出现SQL了,MP默认的根据类名找表名,只是大小写转换
# 表名和实体类之间如果不是大小写转换的关系,如表名有统一前缀tb_
# 则需要在配置中指定一下:
mybatis-plus:
  global-config:
    db-config:
      table-prefix: tb_

继承BaseMapper来简化开发,传入实体类:

@Mapper
public interface UserDao extends BaseMapper<User> {
}

4、SpringBoot整合Druid

去mavenrepository中查找druid的坐标:

<dependency>
	<groupId>com.alibaba</groupId>
	<artifactId>druid-spring-boot-starter</artifactId>
	<version>1.2.6</version>
</dependency>

刷新maven后写配置:

spring:
  datasource:
  driver-class-name: com.mysql.cj.jdbc.Driver
  url: jdbc:mysql://localhost:3306/ssm_db
  username: root
  password: root
  type: com.alibaba.druid.pool.DruidDataSource  # 指定type,即数据源类型

以上这个使用type的写法是通用性的写法,也可以使用druid专用的配置写法:

spring:
  datasource:
    druid:   # !!!
      driver-class-name: com.mysql.cj.jdbc.Driver
      url: jdbc:mysql://localhost:3306/ssm_db?serverTimezone=UTC
      username: root
      password: root

整合任意第三方技术的核心就是:

  • 导入对应的starter
  • 配置对应的设置或采用默认配置

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

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

相关文章

IDEA(2023)解决运行乱码问题

&#x1f607;作者介绍&#xff1a;一个有梦想、有理想、有目标的&#xff0c;且渴望能够学有所成的追梦人。 &#x1f386;学习格言&#xff1a;不读书的人,思想就会停止。——狄德罗 ⛪️个人主页&#xff1a;进入博主主页 &#x1f5fc;专栏系列&#xff1a;无 &#x1f33c…

Nginx 相关介绍(Nginx是什么?能干嘛?)

Nginx的产生 没有听过Nginx&#xff1f;那么一定听过它的"同行"Apache吧&#xff01;Nginx同Apache一样都是一种WEB服务器&#xff0c;基于REST架构风格&#xff0c;以统一资源描述符(Uniform Resources Identifier)URI或者统一资源定位符(Uniform Resources Locator…

【算法专题突破】滑动窗口 - 串联所有单词的子串(15)

目录 1. 题目解析 2. 算法原理 3. 代码编写 写在最后&#xff1a; 1. 题目解析 题目链接&#xff1a;30. 串联所有单词的子串 - 力扣&#xff08;LeetCode&#xff09; 这道题其实也很好理解&#xff0c;看一下示例就基本知道是什么意思了&#xff0c; 主要就是找 s 里面…

day21算法

常见的七种查找算法&#xff1a; ​ 数据结构是数据存储的方式&#xff0c;算法是数据计算的方式。所以在开发中&#xff0c;算法和数据结构息息相关。今天的讲义中会涉及部分数据结构的专业名词&#xff0c;如果各位铁粉有疑惑&#xff0c;可以先看一下哥们后面录制的数据结构…

Ubuntu不能上网解决办法

问题及现象 Ubuntu的虚拟机&#xff08;18.04&#xff09;总是莫名就不能上网了。 使用ifconfig -a 查看&#xff0c;ensxx&#xff08;xx为虚拟机分配的id号&#xff09;对应的网卡有mac地址&#xff0c;但是没有分配ip地址。 Network中也没有Wired的选项。 临时解决方案 使…

深入学习 Redis Cluster - 集群缩容(全网最详细)

目录 一、集群缩容 1.1、准备环境 1.2、第一步&#xff0c;删除从节点 1.3、第二步&#xff0c;重新分配 slots 第一次分配&#xff1a;分配给 106 1365 个 slots 第二次分配&#xff1a;分配给102 1365 个 slots 此时查看集群状态&#xff0c;可以看到 110 节点不再持有…

【技术分享】NetLogon于域内提权漏洞(CVE-2020-1472)

一、漏洞介绍 CVE-2020-1472是一个Windows域控中严重的远程权限提升漏洞。攻击者在通过NetLogon&#xff08;MS-NRPC&#xff09;协议与AD域控建立安全通道时&#xff0c;可利用该漏洞将AD域控的计算机账号密码置为空&#xff0c;从而控制域控服务器。该漏洞适用于Win2008及后…

C#实现钉钉自定义机器人发送群消息帮助类

一、自定义机器人发送群消息使用场景 在企业中,针对一些关键指标内容(如每天的生产产量、每天的设备报警信息等信息),需要同时给多人分享,此时就可以将需要查看这些数据的人员都拉到一个群中,让群里的机器人将这些关键指标内容推送到群里即可【(目前已实现在钉钉群里创建…

Pytorch-CNN-Mnist

文章目录 model.pymain.py网络设置注意事项及改进运行截图 model.py import torch.nn as nn class CNN_cls(nn.Module):def __init__(self,in_dim28*28):super(CNN_cls,self).__init__()self.conv1 nn.Conv2d(1,32,1,1)self.pool1 nn.MaxPool2d(2,2)self.conv2 nn.Conv2d(3…

2023上半年软件设计师上午题目总结

1 在计算机中系统总线用于连接 主存及外设部件 2 在由高速缓存、主存、硬盘构成的三级存储体系中&#xff0c;CPU执行指令时需要读取数据&#xff0c;DMA控制器和中断CPU发出的数据地址是 主存物理地址 。 DMA&#xff08;Direct Memory Access&#xff09;控制器是计算机硬…

Nacos深入原理从源码层面讲解

文章目录 1 Nacos原理1.1 Nacos架构1.2 注册中心原理1.3 SpringCloud服务注册1.4 NacosServiceRegistry实现1.4.1 心跳机制1.4.2 注册原理1.4.3 总结 1.5 服务提供者地址查询1.6 Nacos服务地址动态感知原理 1 Nacos原理 1.1 Nacos架构 Provider APP&#xff1a;服务提供者Cons…

STM32 学习笔记1:STM32简介

1 概述 STM32&#xff0c;从字面上来理解&#xff0c;ST 是意法半导体&#xff0c;M 是 Microelectronics 的缩写&#xff0c;32 表示 32 位&#xff0c;合起来理解&#xff0c;STM32 就是 ST 公司开发的 32 位微控制器。是一款基于 ARM 公司推出的基于 ARMv7 架构的 32 位 Co…

【详细教程hexo博客搭建】1、从零开始搭建一个能用的博客

1、开始 2.环境与工具准备 本教程主要面对的是Windows用户 操作系统&#xff1a;Windows10NodeGitHexo文本编辑器(强烈推荐VSCODE)GitHub 帐号一个域名&#xff08;强烈推荐买个域名&#xff09;云服务器&#xff08;可选&#xff09; 3.Node的安装 打开Node官网&#xff0…

vivo数据中心网络链路质量监测的探索实践

作者&#xff1a;vivo 互联网服务器团队- Wang Shimin 网络质量监测中心是一个用于数据中心网络延迟测量和分析的大型系统。通过部署在服务器上的Agent发起5次ICMP Ping以获取端到端之间的网络延迟和丢包率并推送到存储与分析模块进行聚合和分析与存储。控制器负责分发PingList…

【大数据】Neo4j 图数据库使用详解

目录 一、图数据库介绍 1.1 什么是图数据库 1.2 为什么需要图数据库 1.3 图数据库应用领域 二、图数据库Neo4j简介 2.1 Neo4j特性 2.2 Neo4j优点 三、Neo4j数据模型 3.1 图论基础 3.2 属性图模型 3.3 Neo4j的构建元素 3.3.1 节点 3.3.2 属性 3.3.3 关系 3.3.4 标…

JS生成器的介绍

1、 什么是生成器 生成器是ES6中新增的一种函数控制、使用的方案&#xff0c;它可以让我们更加灵活的控制函数什么时候继续执行、暂停执行等。 平时我们会编写很多的函数&#xff0c;这些函数终止的条件通常是返回值或者发生了异常。 生成器函数也是一个函数&#xff0c;但是…

阿里云无影云电脑是干什么用的?五大使用场景

阿里云无影云电脑是一种易用、安全、高效的云上桌面服务&#xff0c;阿里云无影云电脑可用于高数据安全管控、高性能计算等要求的金融、设计、视频、教育等领域&#xff0c;适用于多种办公场景&#xff0c;如远程办公、多分支机构、安全OA、短期使用、专业制图等。阿里云百科来…

【LeetCode热题100】--49.字母异位词分组

49.字母异位词分组 两个字符串互为字母异位词&#xff0c;当且仅当两个字符串包含的字母相同。同一组字母异位词中的字符串具备相同点&#xff0c;可以使用相同点作为一组字母异位词的标志&#xff0c;使用哈希表存储每一组字母异位词&#xff0c;哈希表的键为一组字母异位词的…

DockerCompose

DockerCompose Docker Compose可以基于Compose文件帮我们快速的部署分布式应用&#xff0c;而无需手动一个个创建和运行容器&#xff01; 初识DockerCompose Compose文件是一个文本文件&#xff0c;通过指令定义集群中的每个容器如何运行。格式如下&#xff1a; version: &…

[golang 流媒体在线直播系统] 4.真实RTMP推流摄像头把摄像头拍摄的信息发送到腾讯云流媒体服务器实现直播

用RTMP推流摄像头把摄像头拍摄的信息发送到腾讯云流媒体服务器实现直播,该功能适用范围广,比如:幼儿园直播、农场视频直播, 一.准备工作 要实现上面的功能,需要准备如下设备: 推流摄像机&#xff08;监控&#xff09; 流媒体直播服务器(腾讯云流媒体服务器,自己搭建的流媒体服务…