主题:完美解决IntelliJ Idea使用Spring Boot+Beetl模板不会热更新的问题

hiro 2018年11月26日 276

最近在看大斌的Spring Boot 2精髓这本书,在学习到Beetl模板的时候,发现在Idea中模板无法自动热更新,每次改完模板需要重启应用,书中虽然也说了在Idea中将templates目录设置为Source Root,但是这样一来每次修改模板都会重启Spring Boot应用。经过我的折腾发现,可以有更好的办法来解决这个问题。

配置过程分为以下几个点:

1、引入spring-boot-devtools依赖包

2、开启Idea自动编译

3、设置Idea的File Types


详细过程

1、引入spring-boot-devtools包

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-devtools</artifactId>
  <optional>true</optional> <!--optional=true表示不传递依赖-->
</dependency>

2、开启Idea自动编译

image.png

勾选 Build project automatically

使用快捷键:Ctrl+Shift+Alt+/ 打开Idea的注册中心,找到选项:compiler.automake.allow.when.app.running 勾选,如下图所示:

image.png

image.png

3、设置File Types

打开settings面板,找到Editor下的File Types,在打开的设置面板中的Recongnized File Types中找到HTML选项,然后在Registered Patterns中添加 *.btl,如下图所示:

image.png

点击Apply后会有点卡顿,Idea会重新加载并根据File Types配置的规则过滤文件,加载完毕后,我们的模板文件会成为如下这个样子:

image.png

我们发现模板文件已经被Idea识别到了,并且加上了HTML文件的图标,同时我们配置的Beetl模板文件也有高亮了,这个时候我们启动应用,随意修改一个模板文件,刷新浏览器会发现修改内容已经更新,并且我们发现控制台并没有打印日志,也就是说并没有重启应用。


疑问:

使用这种方式配置之后,发现beetl.properties中配置的模板更新检查开关失效了,即 RESOURCE.autoCheck=false的时候,依然可以看到我们的模板会更新,不知道这个是什么情况。


注意:如果使用上述步骤还是无法热更新,那么重启一下Idea试试。

闲大赋 2018年11月27日

厉害了,我置顶

jackzhou 6天前

nice