springboot devtools热部署、banner.txt启动时的图像、配置文件中的随机值
1、devtools工具
devtools在开发阶段非常有用,当我们修改了代码之后,往往需要重新启动项目,如果项目很大的话,启动时间长,非常麻烦,于是有了热启动,即不用重新启动项目,只需要重新加载更改的文件即可,大大节省了时间。
首先添加maven依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
还需要设置idea为自动编译,File——> settings:
回到idea主界面,Shift+Ctrl+Alt+/ 打开一个浮动界面,选择Registry打开一个窗口,勾选如下项:
至此,我们可以体验热启动了,只要你修改了文件,就会立马给你重新加载更新,不用重启,你就会感受到改变已经生效。
devtools有一些属性,可以在application.yml中自己去设置:
spring:
devtools:
restart:
enabled: true #是否启动devtools工具的热启动功能,默认为开启
# trigger-file: #指定触发文件,当这个文件发生更改时,才会触发去检查其它监控的目录是否发生了更改,更改了就会重新热启动
# quiet-period: #在触发了热启动后,需要等待多久才执行启动,(常碰到的问题:当idea还没有编译好,devtools就开始热启动,就会出现错误),适当设置这个时间,默认为400毫秒。
# poll-interval: #检查更改的周期,默认为1秒
# log-condition-evaluation-delta: false #当发生更改时,每次都要重新加载,是否产生日志报告,默认产生
# additional-exclude: #排除(非默认目录)额外的目录,即更改这些目录时,不重载
# exclude: static/** #这个属性是将改动监控路径排除出去,该动这些目录的内容,就不会触发重加载了
# additional-paths: #用于添加那些除了默认的那些监控路径外的需要监控的路径
默认的情况下,热启动只在本地起作用,因为打包发布是会把devtools排除掉,jar中自然就没有devtools的功能了。有时候我们需要将项目打包成jar部署到远程服务器上测试,同时也会频繁修改代码,这时候我们可能需要保留远程热启动的功能:在本地修改了代码后,启动本地服务,就可以将更改同步到远程服务器上并热启动。application.yml设置如下:
# 这是设置本地和远程之间同步代码时所需要的密码,可以任意设置
spring:
devtools:
remote:
secret: mysecret
pom.xml里的打包插件配置如下:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!--设置在打包项目的时候,将devtools包含在内-->
<excludeDevtools>false</excludeDevtools>
</configuration>
</plugin>
idea配置如下,将main class更换为org.springframework.boot.devtools.RemoteSpringApplication:
1. 打包项目为jar,放到远程服务器上并启动。
2. 修改本地代码,然后在本地启动项目(这时候,远程服务器上已经完成了或者正在完成热启动),到此OK。
2、banner 图标
在resources目录下创建banner.txt文件,文件里的内容就是springboot启动时打印出来的标志(花里胡哨)。
这三个网址是用于生产ascll图像的。
http://patorjk.com/software/taag
http://www.network-science.de/ascii/
http://www.degraeve.com/img2txt.php
如果我们要禁止启动的时候输出banner.txt文件里的内容,就在application.xml中配置:
spring:
main:
banner-mode: "off" #"console" 代表要打印出,默认就是console
3. 随机值
可以在properties文件或者yml文件中使用随机值
${random.value} 表示随机值
${random.int} 表示随机整数
${random.long} 表示随机long值
${random.uuid} 表示随机的uuid
${random.int(10)} 表示小于10的随机整数
${random.int[1024,65536]} 表示1024 到 65536区间的随机整数
上一篇: RabbitMQ快速入门
下一篇: RabbitMQ快速入门(详细)