文章目录
一、总说
SpringBoot的整合servlet、整合数据库、整合myBatis、单元测试等等知识,全部以这个超级案例的方式学习。
所以你可能看到很多和案例无关的东西。
二、Web原生组件注入
web原生组件就是JavaWeb学过的servlet、Filter、Listener。将它们注入SpringBoot的方式有两种:
1.注入servlet
2.注入Filter
基于上面的步骤,再注入一个Filter
有必要说明一点,拦截css下的所有资源,在servlet中的写法是/css/*,在spring中的写法是/css/**
* Filter、Interceptor 几乎拥有相同的功能
* 1、Filter是Servlet定义的原生组件。好处,脱离Spring应用也能使用
* 2、Interceptor是Spring定义的接口。可以使用Spring的自动装配等功能
3.注入Listener
三、整合数据库
1.使用默认的HikariDataSource
1.导入依赖
2.配置application.yml
3.直接写sql语句
你的jdbcTemplate这些都已经帮你配置好了,直接用就行
也可以
2.自定义整合Druid数据源
Druid是第三方的,所以不会像上面那么简单
1.导入数据源依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.17</version>
</dependency>
2.编写配置类
3.编写sql语句
也可以
3.使用starter来整合Druid数据源
1.引入Druid的starter
2.配置application.yml
3.编写sql语句
也可以
4.使用starter来整合Druid数据源(高级版)
1.引入Druid的starter
2.配置application.yml
官方文档:SpringBoot配置Druid 和 配置项列表详细说明了这些application.yml里面的配置参数
3.运行
四、整合myBatis
用了整合MyBatis后 整合数据库 基本上就用不上了
1.使用配置文件版
1.引入starter
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.4</version>
</dependency>
2.完整流程
3.改进
4.说明
使用配置文件版并不会被使用注解版取代,在开发中混合使用配置文件+注解才是经常的,所以不要想着它就不重要
2.使用注解版
1.引入starter
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.4</version>
</dependency>
2.完整流程
3.关于application.yml
3.混合版(开发中常用)
1.引入starter
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.4</version>
</dependency>
2.完整流程
3.问题及改进
4.问题及改进
五、整合MyBatisPlus
参考文档:MyBatisPlus官网
1.整合与测试
1.引入starter
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.1</version>
</dependency>
2.对一些功能的小解释
3.完整流程
下面只不过是小测试,所以没有Service层(不要怀疑我缺失了截图)
2.将MyBatisPlus整合到后台管理系统中
3.完成分页功能
4.完成删除用户的功能
六、整合Redis
1.Redis的入门
1.导入redis的starter
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
2.redis环境(略)
1、购买阿里云按量付费redis。经典网络
2、申请redis的公网连接地址
3、修改白名单 允许0.0.0.0/0 访问
3.redis小测试
3.redis更改连接工厂
你得先导入jedis相关的依赖
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
</dependency>
2.使用Redis做监控统计
让拦截器操作redis记录访问某个网址多少次
七、单元测试
1.导入依赖
2.古今对比
3.单元测试
官方文档:JUnit5常用注解
4.断言机制
简单断言
数组断言: 通过 assertArrayEquals 方法来判断两个对象或原始类型的数组是否相等
组合断言: assertAll 方法接受多个 lambda 表达式提供的断言
异常断言: Assertions.assertThrows() 配合函数式编程就可以进行使用。断定一定会出现异常。
超时异常
快速失败
5.前置条件
前置条件(assumptions【假设】)类似于断言,不同之处在于 不满足的断言会使得测试方法失败 ,
而不满足的前置条件 只会使得测试方法的执行终止。前置条件可以看成是 测试方法执行的前提,当该前提不满足时,就没有继续执行的必要。
6.测试报告
7.嵌套测试
8.参数化测试(重点)
参数化测试就可以把所有参数都拉进来挨个测试一遍
- @ParameterizedTest代表当前测试的内容不是普通的测试,而是参数化测试
- @ValueSource: 为参数化测试指定入参来源,支持八大基础类以及String类型,Class类型
- @MethodSource:表示读取指定方法的返回值作为参数化测试入参(注意方法返回需要是一个流)
- …太多了
总之吧,如果需要就从官方文档(参数化测试)里面学,如果不需要你学那么多也没有用