另外,还可以设置一个触发文件,必须修改这个文件才能触发重启。例如,在修改为.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)。
客户端启动后,就可以在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配置里)禁用它们了。
最后
总而言之,面试官问来问去,问的那些Redis知识点也就这么多吧,复习的不够到位,知识点掌握不够熟练,所以面试才会卡壳。将这些Redis面试知识解析以及我整理的一些学习笔记分享出来给大家参考学习
有需要这些学习笔记资料的朋友注意啦:戳这里即可免费领取
还有更多学习笔记面试资料也分享如下(都可免费领取):
itee.com/vip204888/java-p7)**
还有更多学习笔记面试资料也分享如下(都可免费领取):
[外链图片转存中…(img-zwzLEhbC-1628215303327)]