最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring Boot使用Thymeleaf + Gradle構(gòu)建war到Tomcat

 更新時間:2018年12月08日 15:17:48   作者:執(zhí)筆記憶的空白  
今天小編就為大家分享一篇關(guān)于Spring Boot使用Thymeleaf + Gradle構(gòu)建war到Tomcat,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

Spring Boot 以Jar的方式部署啟動,這個不用介紹了, 之前也介紹了關(guān)于 Spring Boot + thymeleaf 的簡單使用 ,但是今天遇到一個問題, 我先描述下問題的場景:

由于運維部門的需求,項目需要以war的形式放到tomcat運行 ,而不是原定的jar的方式運行

配置了一下午,也查了一下午的資料,以war的方式在Tomcat能運行,并且能訪問Controller,但是在返回html視圖時,找不到視圖模板。最終發(fā)現(xiàn)問題在Thymeleaf的配置,話不多說,具體看操作步驟:

1、Spring boot 容器配置需要繼承 SpringBootServletInitializer 

這里我繼承的是web.suport下面的SpringBootServletInitializer。

@SpringBootApplication
public class Application extends SpringBootServletInitializer {
  @Override
  protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
    return application.sources(Application.class);
  }
  public static void main(String[] args) throws Exception {
    SpringApplication.run(Application.class, args);
  }
}

2、更新你的Maven or Gradle 打包方式配置

下一步是更新你的構(gòu)建配置,這樣你的項目將產(chǎn)生一個war包而不是jar包。如果你使用Maven,并使用spring-boot-starter-parent(為了配置Maven的war插件),所有你需要做的就是更改pom.xmlpackagingwar

<packaging>war</packaging>

如果你使用Gradle,你需要修改build.gradle來將war插件應(yīng)用到項目上:

apply plugin: 'war'

3、確保內(nèi)嵌的servlet容器不能干擾war包將部署的servlet容器

為了達到這個目的,你需要將內(nèi)嵌容器的依賴標記為provided。

如果使用Maven

<dependencies>
  <!-- … -->
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <scope>provided</scope>
  </dependency>
  <!-- … -->
</dependencies>

如果使用Gradle

dependencies {
  // …
  providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'
  // …
}

以上步驟配置好,maven or Gradle 在build的時候就會打成war包,這里可能還需要注意一個編碼的問題,這個就大家自己去找了,具體詳情參照:Spring 源碼

配置好這些,確實能在Tomcat啟動了,但是對于Controller返回頁面視圖,卻還不夠,還需要配置模板的參數(shù),這里我使用的是Thymeleaf ,所以就介紹Thymeleaf 的配置方式

4、Thymeleaf 的配置

如果你是用的.properties方式配置的 參數(shù),那么只需要在你的application.properties配置下面加上:

# THYMELEAF (ThymeleafAutoConfiguration)
spring.thymeleaf.check-template-location=true
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html
spring.thymeleaf.mode=HTML5
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.content-type=text/html
spring.thymeleaf.cache=false

每一個配置項的具體意思就自己去查了,這里不細說,  如果你是用.yml的方式進行配置項的話,那么需要在application.yml里面配置如下參數(shù):

spring:
 thymeleaf:
  cache: false
  check-template-location: true
  prefix: classpath:/templates/
  suffix: .html
  mode: HTML5
  encoding: UTF-8
  content-type: text/html

其實重要的就是prefix,因為放到tomcat里面之后, Thymeleaf  就找不到默認的templates 模板路徑了,所以這里需要重新指明一下,這個問題也困擾了我一下午加一晚上,剛剛才調(diào)完, 現(xiàn)在記錄下,后人謹記??!

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接

相關(guān)文章

  • java Mail郵件接收工具類

    java Mail郵件接收工具類

    這篇文章主要介紹了java Mail郵件接收工具類,本文直接給出類實現(xiàn)代碼和使用示例,需要的朋友可以參考下
    2015-02-02
  • java發(fā)送javax.mail郵件實例講解

    java發(fā)送javax.mail郵件實例講解

    這篇文章主要為大家介紹了java發(fā)送javax.mail郵件實例講解,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-01-01
  • SpringBoot?thymeleaf實現(xiàn)餅狀圖與柱形圖流程介紹

    SpringBoot?thymeleaf實現(xiàn)餅狀圖與柱形圖流程介紹

    這篇文章主要介紹了SpringBoot?thymeleaf實現(xiàn)餅狀圖與柱形圖流程,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2022-12-12
  • Java 中ThreadLocal類詳解

    Java 中ThreadLocal類詳解

    什么是ThreadLocal?顧名思義它是local variable(線程局部變量)。它的功用非常簡單,就是為每一個使用該變量的線程都提供一個變量值的副本,是每一個線程都可以獨立地改變自己的副本,而不會和其它線程的副本沖突。從線程的角度看,就好像每一個線程都完全擁有該變量。
    2016-03-03
  • 簡單了解Java垃圾回收器的種類

    簡單了解Java垃圾回收器的種類

    這篇文章主要介紹了簡單了解Java垃圾回收器的種類,具有一定借鑒價值,需要的朋友可以參考下。
    2017-12-12
  • 詳解Java關(guān)于時間格式化的方法

    詳解Java關(guān)于時間格式化的方法

    這篇文章主要介紹了詳解Java關(guān)于時間格式化的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Java利用iTextPDF庫實現(xiàn)制作PDF表格模板并填充數(shù)據(jù)

    Java利用iTextPDF庫實現(xiàn)制作PDF表格模板并填充數(shù)據(jù)

    這篇文章主要為大家詳細介紹了如何通過Java的iTextPDF庫制作一個PDF表格模板并填充數(shù)據(jù),文中的示例代碼講解詳細,感興趣的小伙伴快跟隨小編一起學(xué)習(xí)一下吧
    2023-12-12
  • Java中ArrayList與順序表的定義與實現(xiàn)方法

    Java中ArrayList與順序表的定義與實現(xiàn)方法

    ArrayList是一個實現(xiàn)List接口的類,底層是動態(tài)類型順序表,本質(zhì)也就是數(shù)組,動態(tài)主要體現(xiàn)在它的擴容機制,下面這篇文章主要給大家介紹了關(guān)于Java中ArrayList與順序表的定義與實現(xiàn)的相關(guān)資料,需要的朋友可以參考下
    2022-07-07
  • 啟動SpringBoot報錯Input length = 1問題及解決

    啟動SpringBoot報錯Input length = 1問題及解決

    這篇文章主要介紹了啟動SpringBoot報錯Input length = 1問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • spring security 5.x實現(xiàn)兼容多種密碼的加密方式

    spring security 5.x實現(xiàn)兼容多種密碼的加密方式

    spring security針對該功能有兩種實現(xiàn)方式,一種是簡單的使用加密來保證基于 cookie 的 token 的安全,另一種是通過數(shù)據(jù)庫或其它持久化存儲機制來保存生成的 token。這篇文章主要給大家介紹了關(guān)于spring security 5.x實現(xiàn)兼容多種密碼的加密方式,需要的朋友可以參考下。
    2018-01-01

最新評論

类乌齐县| 新兴县| 海晏县| 高要市| 会泽县| 长春市| 伊吾县| 大城县| 安图县| 克山县| 宁德市| 上虞市| 太仓市| 敦煌市| 永胜县| 丹巴县| 扎鲁特旗| 保康县| 天门市| 蓝山县| 崇州市| 东阳市| 瑞丽市| 邵阳市| 闸北区| 五峰| 高陵县| 霍林郭勒市| 大同县| 永善县| 临朐县| 延庆县| 平湖市| 称多县| 项城市| 徐水县| 大庆市| 施秉县| 巴林右旗| 安仁县| 山阴县|