Day31_SpringBoot—后台管理系统(二)

文章目录

一、总说

SpringBoot的整合servlet整合数据库整合myBatis单元测试等等知识,全部以这个超级案例的方式学习。
所以你可能看到很多和案例无关的东西。

二、Web原生组件注入

web原生组件就是JavaWeb学过的servlet、Filter、Listener。将它们注入SpringBoot的方式有两种:

1.注入servlet

Day31_SpringBoot—后台管理系统(二)
Day31_SpringBoot—后台管理系统(二)
Day31_SpringBoot—后台管理系统(二)
Day31_SpringBoot—后台管理系统(二)

2.注入Filter

基于上面的步骤,再注入一个Filter
Day31_SpringBoot—后台管理系统(二)
Day31_SpringBoot—后台管理系统(二)

有必要说明一点,拦截css下的所有资源,在servlet中的写法是/css/*,在spring中的写法是/css/**

 * Filter、Interceptor 几乎拥有相同的功能
 * 1、Filter是Servlet定义的原生组件。好处,脱离Spring应用也能使用
 * 2、Interceptor是Spring定义的接口。可以使用Spring的自动装配等功能

3.注入Listener

Day31_SpringBoot—后台管理系统(二)
Day31_SpringBoot—后台管理系统(二)

三、整合数据库

1.使用默认的HikariDataSource

1.导入依赖

Day31_SpringBoot—后台管理系统(二)
Day31_SpringBoot—后台管理系统(二)

2.配置application.yml

Day31_SpringBoot—后台管理系统(二)

3.直接写sql语句
你的jdbcTemplate这些都已经帮你配置好了,直接用就行

Day31_SpringBoot—后台管理系统(二)
也可以Day31_SpringBoot—后台管理系统(二)

2.自定义整合Druid数据源

Druid是第三方的,所以不会像上面那么简单

1.导入数据源依赖

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.17</version>
        </dependency>

2.编写配置类

Day31_SpringBoot—后台管理系统(二)

3.编写sql语句

Day31_SpringBoot—后台管理系统(二)
也可以Day31_SpringBoot—后台管理系统(二)

3.使用starter来整合Druid数据源

1.引入Druid的starter

Day31_SpringBoot—后台管理系统(二)

2.配置application.yml

Day31_SpringBoot—后台管理系统(二)

3.编写sql语句

Day31_SpringBoot—后台管理系统(二)
也可以Day31_SpringBoot—后台管理系统(二)

4.使用starter来整合Druid数据源(高级版)

1.引入Druid的starter

Day31_SpringBoot—后台管理系统(二)

2.配置application.yml
官方文档:SpringBoot配置Druid配置项列表详细说明了这些application.yml里面的配置参数

Day31_SpringBoot—后台管理系统(二)

3.运行

Day31_SpringBoot—后台管理系统(二)
Day31_SpringBoot—后台管理系统(二)
Day31_SpringBoot—后台管理系统(二)
Day31_SpringBoot—后台管理系统(二)
Day31_SpringBoot—后台管理系统(二)
Day31_SpringBoot—后台管理系统(二)
Day31_SpringBoot—后台管理系统(二)

四、整合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.完整流程

Day31_SpringBoot—后台管理系统(二)
Day31_SpringBoot—后台管理系统(二)
Day31_SpringBoot—后台管理系统(二)
Day31_SpringBoot—后台管理系统(二)

3.改进

Day31_SpringBoot—后台管理系统(二)

4.说明
使用配置文件版并不会被使用注解版取代,在开发中混合使用配置文件+注解才是经常的,所以不要想着它就不重要



2.使用注解版

1.引入starter

        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.4</version>
        </dependency>

2.完整流程

Day31_SpringBoot—后台管理系统(二)
Day31_SpringBoot—后台管理系统(二)
Day31_SpringBoot—后台管理系统(二)

3.关于application.yml

Day31_SpringBoot—后台管理系统(二)



3.混合版(开发中常用)

1.引入starter

        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.4</version>
        </dependency>

2.完整流程

Day31_SpringBoot—后台管理系统(二)
Day31_SpringBoot—后台管理系统(二)
Day31_SpringBoot—后台管理系统(二)
Day31_SpringBoot—后台管理系统(二)

3.问题及改进

Day31_SpringBoot—后台管理系统(二)
Day31_SpringBoot—后台管理系统(二)
Day31_SpringBoot—后台管理系统(二)

4.问题及改进

Day31_SpringBoot—后台管理系统(二)
Day31_SpringBoot—后台管理系统(二)

五、整合MyBatisPlus

参考文档:MyBatisPlus官网

1.整合与测试

1.引入starter

        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.1</version>
        </dependency>

2.对一些功能的小解释

Day31_SpringBoot—后台管理系统(二)
Day31_SpringBoot—后台管理系统(二)
Day31_SpringBoot—后台管理系统(二)
Day31_SpringBoot—后台管理系统(二)

3.完整流程

下面只不过是小测试,所以没有Service层(不要怀疑我缺失了截图)Day31_SpringBoot—后台管理系统(二)
Day31_SpringBoot—后台管理系统(二)
Day31_SpringBoot—后台管理系统(二)
Day31_SpringBoot—后台管理系统(二)

2.将MyBatisPlus整合到后台管理系统中

Day31_SpringBoot—后台管理系统(二)Day31_SpringBoot—后台管理系统(二)
Day31_SpringBoot—后台管理系统(二)
Day31_SpringBoot—后台管理系统(二)
Day31_SpringBoot—后台管理系统(二)

3.完成分页功能

Day31_SpringBoot—后台管理系统(二)
Day31_SpringBoot—后台管理系统(二)
Day31_SpringBoot—后台管理系统(二)
Day31_SpringBoot—后台管理系统(二)

4.完成删除用户的功能

Day31_SpringBoot—后台管理系统(二)
Day31_SpringBoot—后台管理系统(二)
Day31_SpringBoot—后台管理系统(二)

六、整合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小测试

Day31_SpringBoot—后台管理系统(二)
Day31_SpringBoot—后台管理系统(二)
Day31_SpringBoot—后台管理系统(二)
Day31_SpringBoot—后台管理系统(二)
Day31_SpringBoot—后台管理系统(二)

3.redis更改连接工厂

你得先导入jedis相关的依赖
        <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
        </dependency>

Day31_SpringBoot—后台管理系统(二)

2.使用Redis做监控统计

让拦截器操作redis记录访问某个网址多少次

Day31_SpringBoot—后台管理系统(二)
Day31_SpringBoot—后台管理系统(二)
Day31_SpringBoot—后台管理系统(二)
Day31_SpringBoot—后台管理系统(二)
Day31_SpringBoot—后台管理系统(二)
Day31_SpringBoot—后台管理系统(二)
Day31_SpringBoot—后台管理系统(二)

七、单元测试

1.导入依赖

Day31_SpringBoot—后台管理系统(二)
Day31_SpringBoot—后台管理系统(二)

2.古今对比

Day31_SpringBoot—后台管理系统(二)

3.单元测试
官方文档:JUnit5常用注解

Day31_SpringBoot—后台管理系统(二)
Day31_SpringBoot—后台管理系统(二)
Day31_SpringBoot—后台管理系统(二)
Day31_SpringBoot—后台管理系统(二)
Day31_SpringBoot—后台管理系统(二)
Day31_SpringBoot—后台管理系统(二)
Day31_SpringBoot—后台管理系统(二)
Day31_SpringBoot—后台管理系统(二)

4.断言机制

简单断言
Day31_SpringBoot—后台管理系统(二)
Day31_SpringBoot—后台管理系统(二)
Day31_SpringBoot—后台管理系统(二)

数组断言: 通过 assertArrayEquals 方法来判断两个对象或原始类型的数组是否相等
Day31_SpringBoot—后台管理系统(二)

组合断言: assertAll 方法接受多个 lambda 表达式提供的断言
Day31_SpringBoot—后台管理系统(二)

异常断言: Assertions.assertThrows() 配合函数式编程就可以进行使用。断定一定会出现异常。
Day31_SpringBoot—后台管理系统(二)

超时异常
Day31_SpringBoot—后台管理系统(二)

快速失败Day31_SpringBoot—后台管理系统(二)

5.前置条件

前置条件(assumptions【假设】)类似于断言,不同之处在于 不满足的断言会使得测试方法失败
而不满足的前置条件 只会使得测试方法的执行终止。前置条件可以看成是 测试方法执行的前提,当该前提不满足时,就没有继续执行的必要

Day31_SpringBoot—后台管理系统(二)
Day31_SpringBoot—后台管理系统(二)

6.测试报告

Day31_SpringBoot—后台管理系统(二)
Day31_SpringBoot—后台管理系统(二)

7.嵌套测试

Day31_SpringBoot—后台管理系统(二)
Day31_SpringBoot—后台管理系统(二)

8.参数化测试(重点)

参数化测试就可以把所有参数都拉进来挨个测试一遍

  • @ParameterizedTest代表当前测试的内容不是普通的测试,而是参数化测试
  • @ValueSource: 为参数化测试指定入参来源,支持八大基础类以及String类型,Class类型
  • @MethodSource:表示读取指定方法的返回值作为参数化测试入参(注意方法返回需要是一个流)
  • …太多了

总之吧,如果需要就从官方文档(参数化测试)里面学,如果不需要你学那么多也没有用

Day31_SpringBoot—后台管理系统(二)
Day31_SpringBoot—后台管理系统(二)

上一篇:spring整合druid的问题Sorry, you are not permitted to view this page.


下一篇:数据链接池Druid和Clickhouse:expect ANY, actual ANY pos 2