欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

springboot devtools热部署、banner.txt启动时的图像、配置文件中的随机值

程序员文章站 2022-05-03 22:11:01
...

1、devtools工具

devtools在开发阶段非常有用,当我们修改了代码之后,往往需要重新启动项目,如果项目很大的话,启动时间长,非常麻烦,于是有了热启动,即不用重新启动项目,只需要重新加载更改的文件即可,大大节省了时间。

首先添加maven依赖:

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-devtools</artifactId>
  <optional>true</optional>
</dependency>

还需要设置idea为自动编译,File——> settings:

springboot devtools热部署、banner.txt启动时的图像、配置文件中的随机值

回到idea主界面,Shift+Ctrl+Alt+/  打开一个浮动界面,选择Registry打开一个窗口,勾选如下项:

springboot devtools热部署、banner.txt启动时的图像、配置文件中的随机值

至此,我们可以体验热启动了,只要你修改了文件,就会立马给你重新加载更新,不用重启,你就会感受到改变已经生效。

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:

springboot devtools热部署、banner.txt启动时的图像、配置文件中的随机值

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区间的随机整数