SpringBoot开发实用篇复习1

SpringBoot开发实用篇主要包含6大部分,分别为热部署、配置高级、测试、数据层解决方案、整合第三方技术、监控。下面就开始一起学习吧。这篇文章包含前三个部分,即热部署、配置高级和测试。

目录

一、热部署

1.1、手动启动热部署

 1.2、自动启动热部署

1.3、热部署范围配置

1.4、关闭热部署

二、配置高级

2.1、第三方Bean属性绑定

 2.2、松散绑定

2.3、常用的计量单位应用

 2.4、Bean属性校验

 2.5、进制数据转换规则

​三、测试篇

3.1、加载测试专用属性

3.2、测试类中启动web环境

3.3、发送MVC虚拟请求调用

 3.4、虚拟请求匹配

3.5、业务层测试事务回滚


一、热部署

1.1、手动启动热部署

热部署就是当服务器发现内部的程序发生了变化,服务器做一个内部的重启。

首先要在pom.xml配置依赖坐标,然后再激活热部署即可。

<!--启动热部署的依赖坐标,刷新一下-->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-devtools</artifactId>
			<optional>true</optional>
		</dependency>

使用构建项目ctrl+F9完成热部署激活。

 热部署的过程仅仅是restart过程,不是reload过程。

 1.2、自动启动热部署

在设置中找到编译器,勾选其中的自动构建项目即可实现自动启动热部署,如下: 

当然还需要设置在app运行的时候也启动热部署才行,在任意开发业界使用组合快捷键ctrl+shift+alt+/  则会出现如下,选择注册,勾选当app运行时候允许自动构建。

1.3、热部署范围配置

因为在默认情况下,有些是自动触发热部署,有些是不自动出发热部署,一般默认不触发热部署的目录如下所示。

那么如果我想让一些默认触发热部署的也不触发,那么需要在配置文件中进行配置,排除选项,对某些文件夹进行排除操作。

1.4、关闭热部署

热部署仅在开发环境中有意义,在上线的时候不需要热部署了,可以设置关闭热部署,可以在启动类中设置关闭热部署。

二、配置高级

2.1、第三方Bean属性绑定

注解@ConfigurationProperties可以为自己开发的bean绑定属性,如下所示。在配置文件配置属性,然后和bean进行绑定。

@Data注解是lombok的注解,避免写setter和getter等方法,@Component是定义bean。

 注解@ConfigurationProperties也可以为第三方bean绑定属性,定义第三方bean,然后进行datasource配置绑定。

 也可以使用@EnableConfigurationProperties注解进行bean绑定,要输入第三方bean的类名,同时在第三方bean上不需要再加@Component注解,否则会冲突。

 2.2、松散绑定

@ConfigurationProperties支持松散绑定,就是对bean进行绑定时,写成驼峰模式、下划线模式、中划线模式、常量模式都是可以的,不需要和bean中定义的变量名一模一样。

注意:要是@Value注解进行bean绑定要求属性名必须完全一致才能完成绑定。

 注意:@ConfigurationProperties支持松散绑定,但是绑定的规范要求必须是小写字母、数字、下划线才行,不支持大写字母。

2.3、常用的计量单位应用

JDK8提供了常用的时间和空间单位,如下所示,了解即可。

 2.4、Bean属性校验

首先在配置文件pom.xml中配置校验规范坐标,如下所示。

第2步,开启对当前bean的顺属性校验,一个注解@Validated。

第3步,设置具体的校验规则,校验规则是自己定义的,如下设置端口号最大不超过400。

 2.5、进制数据转换规则



三、测试篇

3.1、加载测试专用属性

对于加载配置,我们可以设置测试环境的临时属性,这样就可以覆盖原来设置的属性值。

 另外一种设置测试环境临时属性的方法如下,该方法的优先级最高。

 可以使用@Import注解加载当前测试类的专用配置,这样就方便管理。

3.2、测试类中启动web环境

关于web环境的启动模拟,设置web环境即可,可选的模式有如下四种。常用的是随机端口和自定义端口模拟。

3.3、发送MVC虚拟请求调用

对于web环境中发送虚拟请求,首先使用@AutoConfigureMockMvc开启虚拟MVC调用,然后注入调用对象,通过调用对象调用创建的虚拟请求。

 
3.4、虚拟请求匹配

我们一般想知道对于表现层的虚拟请求有没有匹配成功,需要根据状态匹配器定义预期状态,然后将本次真实执行结果与预期结果进行对比。

对于响应体的匹配,即匹配执行结果, 这一次是内容的匹配,根据记过匹配器定义预取结果,和真实结果进行对比。

上面做的是字符串的匹配,但是正常我们应该是做json匹配,对于json的匹配和字符串匹配一样的,方法相同。

对于虚拟请求头的匹配,也是先定义虚拟头部匹配器,根据匹配器定义预期匹配头,根据实际和预期进行对比。

3.5、业务层测试事务回滚

在测试类上加@Transactional注解,可以对提交的事务进行回滚操作,防止脏数据写入。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

nuist__NJUPT

给个鼓励吧,谢谢你

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值