Spring-Boot开发者工具:自动重启、LiveReload、远程开发
另外,还可以设置一个触发文件,必须修改这个文件才能触发重启。例如,在修改为.trigger 的文件前你都不希望执行重启,那么你只需像这样设置spring.devtools.restart.trigger-file
属性:
spring:
devtools:
restart:
trigger-file: .trigger
如果你的IDE会连续编译修改的文件,那触发文件还是很有用的。没有触发文件的话,每次变更都会触发重启。有触发文件,就能保证只有你想重启时才会发生重启(修改触发文件即可)。
二、LiveReload
在Web应用程序开发过程中,最常见的步骤大致如下:
- 修改要呈现的内容(比如图片、样式表、模板)。
- 点击浏览器里的刷新按钮,查看修改的结果。
- 回到第1步。
虽然这并不难,但如果能不点刷新就直接看到修改结果,那岂不是更好?
Spring Boot的开发者工具集成了LiveReload(http://livereload.com)
,可以消除刷新的步骤。激活开发者工具后,Spring Boot会启动一个内嵌的LiveReload
服务器,在资源文件变化时会触发浏览器刷新。你要做的就是在浏览器里安装LiveReload
插件。
如果想要禁用内嵌的 LiveReload
服务器,可以将 spring.devtools.livereload. enabled
设置为false:
spring:
devtools:
livereload:
enabled: false
三、远程开发
在远程运行应用程序时(比如部署到服务器上或云上),开发者工具的自动重启和LiveReload
特性都是可选的。此外,Spring Boot开发者工具还能远程调试Spring Boot应用程序。
在传统的开发过程中,你不会打开远程开发功能,因为这会影响性能。但在一些特殊的场景中,此类工具就很有用。比如,出于开发目的,所开发的应用程序部署在非生产环境里。如果应用程序不是在本地开发环境里,而是在云端部署,则尤其如此。
你必须设置一个远程安全码来开启远程开发功能:
spring:
devtools:
remote:
secret: myappsecret
有了这个属性后,运行中的应用程序就会启动一个服务器组件以支持远程开发。它会监听接受变更的请求,可以重启应用程序或者触发浏览器刷新。
为了使用这个远程服务器,你需要在本地运行远程开发工具的客户端。这个远程客户端是一个类,全限定类名是org.springframework.boot.devtools.RemoteSpringApplication
。它会运行在IDE里,要求提供一个参数,告知远程应用程序部署在哪里。
例如,假设你正远程运行阅读列表应用程序,部署在 Cloud Foundry
上,地址是 https://readinglist.cfapps.io。如果你正在使用Eclipse或Spring ToolSuite,可以通过如下步骤开启远程客户端。
- 选择Run > Run Configurations菜单项。
- 创建一个新的Java Application运行配置。
- 在Project里选中Reading List项目(可以键入项目名或者点击Browse按钮找到这个项目,见图A-1)。
- 在Main Class里键入
org.springframework.boot.devtools.RemoteSpringAppli-cation
(见图A-1)。 - 切换到Arguments标签页,在
Program Arguments
里键入https://readinglist.cfapps. io(见图A-2)。
![图A-2 R
【一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义】
开源完整内容戳这里
emoteSpringApplication将远程应用程序的URL作为参数](https://upload-images.jianshu.io/upload_images/25222111-8a7371b75ff54610.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
客户端启动后,就可以在IDE里修改应用程序了。在检测到变动后,这些修改点会被推送到远端并加以应用。如果修改的内容涉及呈现的Web资源(比如样式表或JavaScript),LiveReload
还会触发浏览器刷新。
远程客户端还会开启基于HTTP的远程调试通道,这样就能在IDE里调试部署在远程的应用程序了。你要做的就是确保远程应用程序打开了远程调试功能。这通常可以通过配置JAVA_OPTS来实现。
比方说,你的应用程序部署在Cloud Foundry上,可以像下面这样在应用程序的manifest.yml
里设置JAVA_OPTS。
env:
JAVA_OPTS: “-Xdebug -Xrunjdwp:server=y,transport=dt_socket,suspend=n”
远程应用程序启动后,会和本地调试服务器建立一个连接。你可以设置断点,一步步执行远程应用程序里的代码,就好像它们运行在本地一样(出于网络原因,速度会有点慢)。
四、默认的开发时属性
有些配置属性通常在开发时设置,从来不用在生产环境里。比如视图模板缓存,在开发时最好关掉,这样你可以立刻看到修改的结果。但在生产环境里,为了追求更好的性能,应该开启视图模版缓存。
默认情况下,Spring Boot会为其支持的各种视图模板(Thymeleaf
、Freemarker
、Velocity
、Mustache
和Groovy
模板)开启缓存选项。但如果存在Spring Boot的开发者工具,这些缓存就会禁用。
实际上,这就是说在开发者工具激活后,如下属性会设置为false:
spring.thymeleaf.cache
spring.freemarker.cache
spring.velocity.cache
spring.mustache.cache
spring.groovy.template.cache
这样一来,就不用在开发时(在一个开发时使用的Profile配置里)禁用它们了。
五、全局配置开发者工具
你应该已经注意到了,在使用开发者工具时,你通常会在多个项目里使用相同的设置。举个例子,如果你使用了重启触发文件,那么你很可能在多个项目里都使用相同的触发文件名。相比在每个项目里重复开发者工具配置,对开发者工具做全局配置显得更方便一些。
要实现这个目的,可以在你的主目录(home directory
)里创建一个名为.spring-boot-devtools. properties
的文件。(请注意,文件名用“.”开头。)在那个文件里,你可以设置希望在多个项目里共享的各种开发者工具属性。
例如,假设你想把触发文件的名称设置为.trigger,在所有Spring Boot项目里禁用LiveReload
。你可以创建一个.spring-boot-devtools.properties
文件,包含如下内容:
spring.devtools.restart.trigger-file=.trigger
spring.devtools.livereload.enabled=false
要是你想覆盖这些配置,可以在每个项目的application.properties
或application.yml
文件里设置特定于每个项目的属性。
ols.livereload.enabled=false
要是你想覆盖这些配置,可以在每个项目的application.properties
或application.yml
文件里设置特定于每个项目的属性。
Spring-Boot开发者工具:自动重启、LiveReload、远程开发相关推荐
- 使用Spring Boot开发者工具进行自动重启和页面自动刷新
简介 大家可能都听说过开发Node.js应用时可以使用多种工具对开发者提供便利,如WebPack提供了开发者服务器来支持js应用动态更替,并在保存文件时自动刷新浏览器.Spring Boot也提供了相 ...
- Spring Security 实战:Spring Boot 下的自动配置
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | 公众号「码农小胖哥」 1. 前言 我们在前几篇 ...
- spring boot rest接口自动生成文档(包含swagger)--gradle 下的配置
之前写过一篇文章:spring boot rest接口自动生成文档(包含swagger),这个使用的是maven作为依赖管理工具,现在,让我们体验一下gradle在spring boot项目中如何配置 ...
- spring boot rest接口自动生成文档(包含swagger)
spring boot rest接口自动生成文档(包含swagger) 写接口免不了写接口文档,但是当文档与代码分开独立演进的时候,会发生很多不同步的问题. 接口描述与代码同 ...
- Spring Boot 接口参数自动加解密
本文标题:Spring Boot 接口参数自动加解密 原始链接: https://www.shuibo.cn/102.html 许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链 ...
- Spring Boot 灵活实现自动配置背后的故事~用起来更香了
最近一直忙着在做新应届生的员工技术培训和面试 ,培训的则是Spring Boot部分的内容,这部分也是面试常问的点,于是想到了各位读者大大,特地的把内容分享大家一份. 不知道大家第一次搭Spring ...
- 使用微信web开发者工具调试接口数据【开发记录】
1.安装微信web开发者工具,注意不是开发小程序的那个 2安装好后微信扫码登录,微信上需要绑定一个公众号授权登录,在手机上打开无线局域网,链接所在区域的无线网(和电脑在同一局域网)在服务器一栏输入ip ...
- Spring Boot + IntelliJ IDEA——自动部署[Spring Boot热部署]+LiveReload[前端自动刷新、热加载]解决方案
基本概念 spring-boot-devtools: Spring Boot包括一组额外的工具,这些工具可以使应用程序开发体验更加愉快.该spring-boot-devtools模块可以包含在任何项目 ...
- (附源码)spring boot高校机房自动排课系统 毕业设计 211004
高校机房自动排课系统 摘 要 随着互联网趋势的到来,各行各业都在考虑利用互联网将自己推广出去,最好方式就是建立自己的互联网系统,并对其进行维护和管理.在现实运用中,应用软件的工作规则和开发步骤,采用J ...
- spring boot高校机房自动排课系统毕业设计源码211004
高校机房自动排课系统 摘 要 随着互联网趋势的到来,各行各业都在考虑利用互联网将自己推广出去,最好方式就是建立自己的互联网系统,并对其进行维护和管理.在现实运用中,应用软件的工作规则和开发步骤,采用J ...
最新文章
- pandas中DataFrame的ix,loc,iloc索引方式的异同
- JSON 是个什么??!!!
- J - Borg Maze
- 链表逆序(JAVA实现)
- VC/MFC程序开启关闭和打开自己或其他软件,更改窗口类
- 周庄不买门票攻略_广东佛山旅游攻略好玩的地方景点推荐
- R语言回归及混合效应模型及贝叶斯实现
- java 字符长度判断_java判断中文字符串长度的简单实例
- 微信浏览器无法下载APK文件的解决方案
- 处理器排行_2019年度PC处理器性能排行榜:AMD反超Intel
- 负载均衡(Load Balance)
- emule最新服务器地址,emule 国内服务器(最新emule服务器)
- windows xp系统账号密码忘记解决办法
- linux curl t上传文件,curl 命令行上传文件
- 2019牛客暑期多校训练营(第八场) CDMA
- linux7.4离线内核升级,CentOS 7.4升级Linux内核
- docker: Error response from daemon: Unknown runtime specified nvidia. 解决方法
- JavaScript滚轮事件
- 联想高志国:超融合已进入2.0时代
- 【数字图像处理】编码解码jpeg和png图片(C语言实现)
热门文章
- 小米笔记本适合计算机专业吗,真Pro还是假专业?细说小米新笔记本电脑五宗罪...
- amd显卡驱动目录linux,面向 Radeon、Radeon Pro、FirePro、APU、CPU、锐龙、台式机、笔记本的 AMD 驱动程序和支持...
- Windows 7 激活时提示“系统保留分区未分配驱动器号!”解决方法
- php 开源留言系统,PHP开源多功能留言板(SyGuestBook)
- CRM给B2B企业带来的影响
- user reg.php,织梦member/reg_new.php SQL注入漏洞修复
- 12星座哪些人会重友轻爱?
- Android开发史上最全笔试面试题
- C++Builder实现鼠标钩子
- 拉登是我罩的队_软件需求规格说明书