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

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值