国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - springboot + devtools(熱部署)實例教程

springboot + devtools(熱部署)實例教程

2020-09-05 11:50趙計剛 Java教程

devtools是boot的一個熱部署工具,當我們修改了classpath下的文件(包括類文件、屬性文件、頁面等)時,會重新啟動應用。本文通過實例給大家介紹springboot+devtools熱部署,感興趣的朋友一起看看吧

技術介紹

devtools是boot的一個熱部署工具,當我們修改了classpath下的文件(包括類文件、屬性文件、頁面等)時,會重新啟動應用(由于其采用的雙類加載器機制,這個啟動會非常快,如果發現這個啟動比較慢,可以選擇使用jrebel)

雙類加載器機制:boot使用了兩個類加載器來實現重啟(restart)機制:base類加載器(簡稱bc)+restart類加載器(簡稱rc)

bc:用于加載不會改變的jar(eg.第三方依賴的jar)

rc:用于加載我們正在開發的jar(eg.整個項目里我們自己編寫的類)。當應用重啟后,原先的rc被丟掉、重新new一個rc來加載這些修改過的東西,而bc卻不需要動一下。這就是devtools重啟速度快的原因。

thymeleaf:boot推薦的模板引擎,這里做簡要的介紹,用來介紹devtools對頁面的熱部署。

項目結構:

springboot + devtools(熱部署)實例教程

1、pom.xml

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<!-- thymeleaf -->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>
    <!--
      devtools可以實現頁面熱部署(即頁面修改后會立即生效,這個可以直接在application.properties文件中配置spring.thymeleaf.cache=false來實現),
      實現類文件熱部署(類文件修改后不會立即生效),實現對屬性文件的熱部署。
      即devtools會監聽classpath下的文件變動,并且會立即重啟應用(發生在保存時機),注意:因為其采用的虛擬機機制,該項重啟是很快的
     -->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-devtools</artifactId>
      <optional>true</optional><!-- optional=true,依賴不會傳遞,該項目依賴devtools;之后依賴myboot項目的項目如果想要使用devtools,需要重新引入 -->
    </dependency>

說明:如果僅僅使用thymeleaf,只需要引入thymeleaf;如果需要使用devtools,只需要引入devtools。

注意:

maven中的optional=true表示依賴不會傳遞。即此處引用的devtools不會傳遞到依賴myboot項目的項目中。

僅僅加入devtools在我們的eclipse中還不起作用,這時候還需要對之前添加的spring-boot-maven-plugin做一些修改,如下:

?
1
2
3
4
5
6
7
8
9
<!-- 用于將應用打成可直接運行的jar(該jar就是用于生產環境中的jar) 值得注意的是,如果沒有引用spring-boot-starter-parent做parent,
        且采用了上述的第二種方式,這里也要做出相應的改動 -->
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
        <configuration>
          <fork>true</fork><!-- 如果沒有該項配置,肯呢個devtools不會起作用,即應用不會restart -->
        </configuration>
      </plugin>

即添加了fork:true

2、ThymeleafController

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package com.xxx.firstboot.web;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@Api("測試Thymeleaf和devtools")
@Controller
@RequestMapping("/thymeleaf")
public class ThymeleafController {
  @ApiOperation("第一個thymeleaf程序")
  @RequestMapping(value = "/greeting", method = RequestMethod.GET)
  public String greeting(@RequestParam(name = "name", required = false, defaultValue = "world") String name,
              Model model) {
    model.addAttribute("xname", name);
    return "greet";
  }
}

說明:Model可以作為一個入參,在代碼中,將屬性以"key-value"的形式存入model,最后直接返回字符串即可。

 3、greet.html

?
1
2
3
4
5
6
7
8
9
10
11
<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
  <title>第一個thymeleaf程序</title>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
  <p th:text="'Hello, ' + ${xname} + '!'" />
  <div>1234567890!!!xx</div>
</body>
</html>

注意:

src/main/resources/templates:頁面存放目錄
src/main/resources/static:方式靜態文件(css、js等)

以上的目錄與ssm中開發的不一樣,ssm中會放在src/main/webapp下

測試:

修改類-->保存:應用會重啟

修改配置文件-->保存:應用會重啟

修改頁面-->保存:應用不會重啟,但會重新加載,頁面會刷新(原理是將spring.thymeleaf.cache設為false)

補充:

默認情況下,/META-INF/maven,/META-INF/resources,/resources,/static,/templates,/public這些文件夾下的文件修改不會使應用重啟,但是會重新加載(devtools內嵌了一個LiveReload server,當資源發生改變時,瀏覽器刷新)。

如果想改變默認的設置,可以自己設置不重啟的目錄:spring.devtools.restart.exclude=static/**,public/**,這樣的話,就只有這兩個目錄下的文件修改不會導致restart操作了。

如果要在保留默認設置的基礎上還要添加其他的排除目錄:spring.devtools.restart.additional-exclude

如果想要使得當非classpath下的文件發生變化時應用得以重啟,使用:spring.devtools.restart.additional-paths,這樣devtools就會將該目錄列入了監聽范圍。

原文鏈接:http://www.cnblogs.com/java-zhao/p/5502398.html

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 日韩激情一区二区三区 | 国产第一区在线观看 | 狠狠操狠狠干 | 91精品久久久久久久久久入口 | 国产精品久久久久久久午夜片 | 免费在线一区二区 | 国产亚洲一区二区三区 | 久久久久久久久99精品 | 久久久久一区 | 欧美91| 欧洲精品视频在线观看 | 日本jizz在线观看 | 亚洲伊人久久综合 | 久久久成人精品 | 午夜视频精品 | 激情五月婷婷 | 欧美一级片 | 国产免费成人 | 亚洲国产精品一区久久av篠田 | 亚洲综合一二区 | 亚洲片国产一区一级在线观看 | 中文成人在线 | 国产一区二区三区免费播放 | 久久精品亚洲精品 | 国产精品久久久久久久久久免费看 | 日韩电影一区二区三区 | 91精品国产91久久久久久黑人 | 亚洲高清免费视频 | 性色av一区二区三区红粉影视 | av免费网站在线观看 | 国内激情自拍 | 亚洲精品久久久久久动漫 | 玖玖在线| 亚洲精品久久久久久国产精华液 | 久久不射电影网 | 国产精品久久九九 | 色在线免费观看 | 黄色片网址在线观看 | 久久99深爱久久99精品 | 欧美精品一区二区三区在线播放 | 亚洲午夜精品久久久久久高潮 |