SpringBoot开发实用篇主要包含6大部分,分别为热部署、配置高级、测试、数据层解决方案、整合第三方技术、监控。下面就开始一起学习吧。这篇文章包含前三个部分,即热部署、配置高级和测试。
目录
热部署就是当服务器发现内部的程序发生了变化,服务器做一个内部的重启。
首先要在pom.xml配置依赖坐标,然后再激活热部署即可。
- <dependency>
- <groupId>org.springframework.bootgroupId>
- <artifactId>spring-boot-devtoolsartifactId>
- <optional>trueoptional>
- dependency>
使用构建项目ctrl+F9完成热部署激活。

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

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

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


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

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

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

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

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

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

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

@ConfigurationProperties支持松散绑定,就是对bean进行绑定时,写成驼峰模式、下划线模式、中划线模式、常量模式都是可以的,不需要和bean中定义的变量名一模一样。
注意:要是@Value注解进行bean绑定要求属性名必须完全一致才能完成绑定。
注意:@ConfigurationProperties支持松散绑定,但是绑定的规范要求必须是小写字母、数字、下划线才行,不支持大写字母。
JDK8提供了常用的时间和空间单位,如下所示,了解即可。

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

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

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


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

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

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

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

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

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

对于响应体的匹配,即匹配执行结果, 这一次是内容的匹配,根据记过匹配器定义预取结果,和真实结果进行对比。
上面做的是字符串的匹配,但是正常我们应该是做json匹配,对于json的匹配和字符串匹配一样的,方法相同。

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

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