Spring Boot 五种热部署方式

隐身守侯 提交于 2020-11-26 03:10:41

<div class="content" id="articleContent"> <div class="ad-wrap"> <p style="margin:0 0 10px 0;"><a data-traceid="blog_detail_above_text_link_1" data-tracepid="blog_detail_above_text_link" style="color:#A00;font-weight:bold;" href="https://my.oschina.net/u/2663968/blog/3135425" target="_blank">【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理)&gt;&gt;&gt; </a> <img src="https://www.oschina.net/img/hot3.png" align="absmiddle" style="max-height: 32px; max-width: 32px;"></p> </div> <span id="OSC_h1_1"></span> <h1 id="h1_1">1、模板热部署</h1> <p>&nbsp; &nbsp; &nbsp; &nbsp; 在SpringBoot中,模板引擎的页面默认是开启缓存的,如果修改了页面的内容,则刷新页面是得不到修改后的页面的,因此我们可以在application.properties中关闭模版引擎的缓存,如下:</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; Thymeleaf的配置:</p> <blockquote> <p>spring.thymeleaf.cache=false</p> </blockquote> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; FreeMarker的配置:</p> <blockquote> <p>spring.freemarker.cache=false&nbsp;&nbsp;</p> </blockquote> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; Groovy的配置:</p> <blockquote> <p>spring.groovy.template.cache=false</p> </blockquote> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; Velocity的配置:</p> <blockquote> <p>spring.velocity.cache=false</p> </blockquote> <span id="OSC_h1_2"></span> <h1 id="h1_2">2、使用调试模式Debug实现热部署</h1> <blockquote> <p>此种方式为最简单最快速的一种热部署方式,运行系统时使用Debug模式,无需装任何插件即可,但是无发对配置文件,方法名称改变,增加类及方法进行热部署,使用范围有限。</p> </blockquote> <span id="OSC_h1_3"></span> <h1 id="h1_3">3、spring-boot-devtools</h1> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; 在Spring Boot 项目中添加 spring-boot-devtools依赖即可实现页面和代码的热部署。如下:</p> <pre><code class="hljs xml"><span class="hljs-tag">&lt;<span class="hljs-name">dependency</span>&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-name">groupId</span>&gt;</span>org.springframework.boot<span class="hljs-tag">&lt;/<span class="hljs-name">groupId</span>&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-name">artifactId</span>&gt;</span>spring-boot-devtools<span class="hljs-tag">&lt;/<span class="hljs-name">artifactId</span>&gt;</span> <span class="hljs-tag">&lt;/<span class="hljs-name">dependency</span>&gt;</span></code></pre> <blockquote> <p>此种方式的特点是作用范围广,系统的任何变动包括配置文件修改、方法名称变化都能覆盖,但是后遗症也非常明显,它是采用文件变化后重启的策略来实现了,主要是节省了我们手动点击重启的时间,提高了实效性,在体验上回稍差。</p> <p>spring-boot-devtools 默认关闭了模版缓存,如果使用这种方式不用单独配置关闭模版缓存。</p> </blockquote> <span id="OSC_h1_4"></span> <h1 id="h1_4">4、Spring Loaded</h1> <blockquote> <p>此种方式与Debug模式类似,适用范围有限,但是不依赖于Debug模式启动,通过Spring Loaded库文件启动,即可在正常模式下进行实时热部署。此种需要在 run confrgration 中进行配置。</p> </blockquote> <span id="OSC_h1_5"></span> <h1 id="h1_5">5、JRebel</h1> <blockquote> <p>Jrebel是Java开发最好的热部署工具,对Spring Boot 提供了极佳的支持,JRebel为收费软件,试用期14天。,可直接通过插件安装。</p> </blockquote> <div class="ad-wrap" style="margin-top: 12px;"> <div id="blog-title-ad" data-traceid="blog_ali" data-tracepid="blogdown" style=""> <script async="" src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <!-- 博客详情页下方 --> <ins class="adsbygoogle" style="display:inline-block;width:728px;height:90px" data-ad-client="ca-pub-7090564139599510" data-ad-slot="2321828009"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div>

<!-- <script> function success_jsonpCallback(data) { var obj = eval(data); if( obj.success ){ var contents = eval(obj.data[0].content); if(contents.length > 0){ var content = contents[0]; $('#blog-title-ad').prepend("<a href='"+ content.url +"' target='_blank' style='max-width:780px;'><img src='"+content.img+"'/></a>"); $('#blog-title-ad').show(); } }else { $('#blog-title-ad').hide(); } } window.addEventListener("load", function() { var url=" http://clickc.admaster.com.cn/c/a116493,b2949390,c3159,i0,m101,8a1,8b2,h"; $.ajax({ type: 'POST', url: url, jsonp: "callback", dataType: 'jsonp', jsonpCallback: 'success_jsonpCallback', contentType: "application/json; charset=utf-8", success: function( response ) { // do in callback }, error:function(){ $('#blog-title-ad').hide(); } }); }, false); </script> -->

<!-- <script type="text/javascript"> $(function () { var objId = $('val[data-name="objId"]').data('value'); $.get('https://www.oschina.net/action/apiv2/get_article_recommends_test?key=osc_3_' + objId); }); </script> -->

原文地址:https://my.oschina.net/ruoli/blog/1590148 </div> </div>

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!