Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)

一、测试 79

 Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第1张图片

1.1加载测试专用属性 79

只在test测试的文件内进行临时的属性配置, 不影响其他的。 

配置临时属性信息方式一:

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第2张图片

配置临时属性信息方式二: 

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第3张图片

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第4张图片 两个临时属性的信息都同时存在时,结果为testValue2,因为,在做配置时,命令(args)的优先级比配置文件的优先级高。

配置属性的优先级:

在配置文件中的属性信息不会被测试环境中所写的临时属性信息所覆盖。

例如下所示:

配置文件中的属性信息:

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第5张图片

测试环境中临时的属性信息:

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第6张图片结果:

说明:配置文件中的信息不会覆盖临时属性信息。 

加载测试专用属性:

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第7张图片

 Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第8张图片

总结:

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第9张图片

1.2加载测试专用配置 80

局部配置导入。只在某些位置添加bean,仅对该范围内起到配置的效果。

加载专用的配置作用:有效降低冲突的问题

案例如下:

步骤一:设置一个类的配置

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第10张图片

步骤二:测试专属bean的测试效果 

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第11张图片

结果:

加载测试专用配置: 

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第12张图片

总结:

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第13张图片

1.3测试类中启动web环境 81

查看源码并查看源码的方法:在需要查看的源码后使用ctrl+鼠标左键,进入源码之后,使用ctrl+f12。即可查看源码的方法。

使用@SpringBootTest中的方法web。

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第14张图片

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第15张图片

注:选择是否开启web。defined_port。默认的服务器端口。也可以检验使用RANDOM_PORT来检验是否把端口进行了不能被重新赋予新端口的测试。

web环境模拟测试:

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第16张图片

1.4发送虚拟请求 82

创建一个controller。一套SpringBoot控制器。使用MVC来作为一个模拟的虚拟调用。 

步骤一:开启虚拟调用

步骤二:发起调用,得需要存在一个调用的对象。 

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第17张图片

创建对象:下面两种方式: 

为一个方法注入资源。

方式一:

    @Autowired
    private MockMvc mvc;

方式二:直接放到参数的位置进行自动装配

void testWeb(@Autowired MockMvc mvc)

不过方式一的范围比方式二的范围大。

步骤三:创建虚拟请求,请求参与访问路径。

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第18张图片

步骤四:执行对应的请求。

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第19张图片

虚拟请求测试: 

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第20张图片

表现层:以下部分1.5-1.8是测试环境下的表现层内容的匹配验证(内容、json、请求头等等) 

1.5匹配响应执行状态 83

状态进行对应匹配。   例如:成功:200 失败:404等

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第21张图片

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第22张图片

1.6匹配响应体 (内容字符串的匹配)84

执行结果的匹配。拿内容进行对比匹配

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第23张图片

 Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第24张图片

1.7匹配响应体(json)85

因为传递的数据匹配是pojo的实体类json,所以需要采用json匹配。创建一个json。让后进行json匹配。

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第25张图片1.8匹配响应头 86

将表现类的内容进行了匹配处理。

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第26张图片

总结:

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第27张图片

业务层的测试: 

1.9业务层测试事务回滚 87

主要测试的目的:在业务测试时,测试的结果不会对数据库的数据进行修改或增加。但是测试也是需要运行成功。

在业务层做测试时,不做数据留痕, 不做垃圾数据保存等。在业务层添加注解@Transactional即可解决该问题。

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第28张图片

 因为SpringBoot发现这是个测试类所以才不进行提交数据到数据库。

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第29张图片

 Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第30张图片

1.10测试用例设置随机数据 88

测试用例数据设定:

 Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第31张图片

 总结:

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第32张图片

总结:

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第33张图片

 二、数据层解决方案---SQL 89

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第34张图片

  Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第35张图片

 Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第36张图片

 Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第37张图片

 Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第38张图片

 总结:

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第39张图片

2.1JdbcTemplate(持久化技术) 90

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第40张图片

 注:jdbc这个作用很大。在公司中也常用。

pom.xml文件需要进行依赖的设置。 

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第41张图片

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第42张图片

 总结:Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第43张图片

2.2H2数据库 91

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第44张图片

 都可以伴随着SpringBoot进行内随启动。  源码都非常小,运行速度块。

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第45张图片

  启动数据库还需要web服务器环境,所以还得需要创建web的依赖。

 Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第46张图片

 在配置文件中进行输入以下语句,可以开启使能。

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第47张图片

 注:在H2数据库中创建表的指令和Mysql不一样。

配置文件中进行设置: 

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第48张图片

 Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第49张图片

注:避免造成安全隐患

总结:

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第50张图片

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第51张图片

总结:

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第52张图片

三、数据层解决方案---NoSQL 92

本部分讲解不使用数据库来进行数据存储的问题。

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第53张图片

 3.1Redis 92

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第54张图片

解释:

1、给一个名称,这边Redis就会存储一个值。这叫做key-value存储结构。和Mysql相比,Mysql可以进行数据库的概念、表的概念、字的概念以及记录的概念。

2、不是存储到硬盘上,而是内存上进行存储工作。

启动Redis:

步骤一:在文件所在位置进行cmd操作。

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第55张图片

步骤二:进入终端输入 redis-cli.exe,显示IP

步骤三:输入shutdown

 步骤四:退出exit

 步骤五:再次重新开启

3.2SpringBoot整合Redis 93

步骤一:在进行创建工程时,在选择Nosql下包含Redis插件。

步骤二:配置文件配置信息

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第56张图片

步骤三:设置与获取Redis的数据信息

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第57张图片

 SpringBoot整合Redis步骤:

步骤一:

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第58张图片

 步骤二:做配置文件的配置

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第59张图片

步骤三:Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第60张图片

 步骤四:

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第61张图片

总结:

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第62张图片3.3SpringBoot读写Redis的客户端 94

疑问?控制台的redis和在IDEA下的Redis不同步,难道说不是同一个Redis。

事实:两者是同一个Redis。

解决问题:使用StringRedisTemplate的可以将两者进行衔接。使其可以同步。

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第63张图片

总结:

3.4SpringBoot操作Redis客户端实现技术切换(jedis)95

jedis:传统的Redis客户端。

lettuce:也是一种Redis客户端。

注:系统默认的是lettuce。如果工程项目使用了jedis,需要进行修改改变。步骤如下。

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第64张图片

实现更换Redis的客户端步骤:

步骤一:pom.xml中更换依赖或者是添加依赖

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第65张图片

步骤二:配置文件中配置客户端

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第66张图片

lettuce和jedis的区别:

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第67张图片

总结:

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第68张图片

3.5Mongodb简介 96

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第69张图片

主要存储的数据变化特别快的场景,会数据会发生一点点改变、很快的改变、特别快实时的改变。

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第70张图片

3.6Mong下载与安装 97

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第71张图片

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第72张图片

 Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第73张图片

总结:

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第74张图片

3.7SpringBoot整合Mongdb 99 

步骤一:创建新工程

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第75张图片

步骤二:添加依赖pom.xml

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第76张图片

 步骤三:修改配置文件信息

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第77张图片

步骤四:添加对象 

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第78张图片

SpringBoot整合Mongdb整合步骤:

步骤一:

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第79张图片

 步骤二:

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第80张图片

 步骤三:

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第81张图片

总结:

Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)_第82张图片

你可能感兴趣的:(#,SpringBoot,spring,boot,java,后端)