欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

由于運(yùn)維部門的需求,項(xiàng)目需要以war的形式放到tomcat運(yùn)行 ,而不是原定的jar的方式運(yùn)行

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

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)建配置,這樣你的項(xiàng)目將產(chǎn)生一個(gè)war包而不是jar包。如果你使用Maven,并使用spring-boot-starter-parent(為了配置Maven的war插件),所有你需要做的就是更改pom.xmlpackagingwar

<packaging>war</packaging>

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

apply plugin: 'war'

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

為了達(dá)到這個(gè)目的,你需要將內(nèi)嵌容器的依賴標(biāo)記為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的時(shí)候就會(huì)打成war包,這里可能還需要注意一個(gè)編碼的問(wèn)題,這個(gè)就大家自己去找了,具體詳情參照:Spring 源碼

配置好這些,確實(shí)能在Tomcat啟動(dòng)了,但是對(duì)于Controller返回頁(yè)面視圖,卻還不夠,還需要配置模板的參數(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

每一個(gè)配置項(xiàng)的具體意思就自己去查了,這里不細(xì)說(shuō),  如果你是用.yml的方式進(jìn)行配置項(xiàng)的話,那么需要在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

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

總結(jié)

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

相關(guān)文章

  • Mybatis中collection和association的使用區(qū)別詳解

    Mybatis中collection和association的使用區(qū)別詳解

    這篇文章主要介紹了Mybatis中collection和association的使用區(qū)別詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-11-11
  • 快速了解Hibernate中的Session

    快速了解Hibernate中的Session

    這篇文章主要介紹了快速了解Hibernate中的Session,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12
  • Java中synchronized關(guān)鍵字引出的多種鎖 問(wèn)題

    Java中synchronized關(guān)鍵字引出的多種鎖 問(wèn)題

    synchronized關(guān)鍵字是JAVA中常用的同步功能,提供了簡(jiǎn)單易用的鎖功能。這篇文章主要介紹了Java中synchronized關(guān)鍵字引出的多種鎖問(wèn)題,需要的朋友可以參考下
    2019-07-07
  • Java中ArrayList類的源碼解析

    Java中ArrayList類的源碼解析

    本文主要介紹了Java中ArrayList類的源碼解析,具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧
    2017-03-03
  • 關(guān)于maven環(huán)境的安裝及maven集成idea環(huán)境的問(wèn)題

    關(guān)于maven環(huán)境的安裝及maven集成idea環(huán)境的問(wèn)題

    Maven 是一個(gè)基于 Java 的工具,所以要做的第一件事情就是安裝 JDK。本文重點(diǎn)給大家介紹關(guān)于maven環(huán)境的安裝及和idea環(huán)境的集成問(wèn)題,感興趣的朋友一起看看吧
    2021-09-09
  • 徹底理解Java中this 關(guān)鍵字

    徹底理解Java中this 關(guān)鍵字

    這篇文章主要介紹了徹底理解Java中this 關(guān)鍵字的相關(guān)資料,非常不錯(cuò),具有參考價(jià)值,需要的朋友可以參考下
    2016-05-05
  • Java讀取Oracle大字段數(shù)據(jù)(CLOB)的2種方法

    Java讀取Oracle大字段數(shù)據(jù)(CLOB)的2種方法

    這篇文章主要介紹了Java讀取Oracle大字段數(shù)據(jù)(CLOB)的2種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • 淺談JVM之使用JFR解決內(nèi)存泄露

    淺談JVM之使用JFR解決內(nèi)存泄露

    內(nèi)存泄露的主要原因就是java中的對(duì)象生命周期有長(zhǎng)有短。如果長(zhǎng)生命周期的對(duì)象引用了短生命周期的對(duì)象,就有可能造成事實(shí)上的內(nèi)存泄露。本文將介紹JVM之使用JFR解決內(nèi)存泄露。
    2021-06-06
  • 淺析Spring IOC bean為什么默認(rèn)是單例

    淺析Spring IOC bean為什么默認(rèn)是單例

    單例的意思就是說(shuō)在 Spring IoC 容器中只會(huì)存在一個(gè) bean 的實(shí)例,無(wú)論一次調(diào)用還是多次調(diào)用,始終指向的都是同一個(gè) bean 對(duì)象,本文小編將和大家一起分析Spring IOC bean為什么默認(rèn)是單例,需要的朋友可以參考下
    2023-12-12
  • Java實(shí)現(xiàn)學(xué)生選課管理系統(tǒng)

    Java實(shí)現(xiàn)學(xué)生選課管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)學(xué)生選課管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-07-07

最新評(píng)論