簡體   English   中英

在Spring Boot中使用Pebble模板引擎

[英]Using Pebble template engine with Spring Boot

因此,我試圖將Pebble模板引擎集成到我的Spring Boot應用程序中,但是我對如何實現這一點感到困惑。

因此,我已經閱讀了他們的網站,了解如何實現它,但是它說的是Spring MVC,我認為它與Spring Boot不一樣。

我也轉到他們的github頁面,然后嘗試將他們的maven依賴項添加到POM.xml中,但是我不知道是否要配置某些東西,或者它與自動配置的Thymeleaf或Mustache相同。

鏈接到他們的網站: http : //mitchellbosecke.com/pebble/

將啟動器依賴項添加到pom.xml中:

春季啟動v1

<dependency>
    <groupId>io.pebbletemplates</groupId>
    <artifactId>pebble-spring-boot-starter</artifactId>
    <version>2.6.2</version>
</dependency>

要么

春季啟動v2

<dependency>
    <groupId>io.pebbletemplates</groupId>
    <artifactId>pebble-spring-boot-2-starter</artifactId>
    <version>2.6.2</version>
</dependency>

這足以啟動自動配置。這包括:

  • 一個加載器,它將從類路徑中的/templates/ dir中選擇以.pebble結尾的模板文件
  • 具有默認設置的PebbleEngine,並使用之前的加載程序進行配置
  • 一個將以UTF-8輸出text/html的ViewResolver

請注意:啟動器取決於spring-boot-starter-web但被標記為可選,您需要自己添加依賴項或適當地配置Spring MVC。

引導外部化配置

可以在Spring Boot外部化配置中定義許多屬性,例如。 application.properties ,從前綴pebble 請參閱相應的PebbleProperties.java以獲取您的入門版本。 值得注意的屬性是:

  • pebble.prefix :定義將在mvc視圖名稱之前添加的前綴。 默認為/templates/
  • pebble.suffix :定義將添加到mvc視圖名稱的后綴。 默認為.pebble
  • pebble.cache :啟用或禁用PebbleEngine緩存。 默認為true
  • pebble.contentType :定義將用於配置ViewResolver的內容類型。 默認為text/html
  • pebble.encoding :定義將用於配置ViewResolver的文本編碼。 默認為UTF-8
  • pebble.exposeRequestAttributes :定義在與ViewResolver的模板合並之前,是否應將所有請求屬性添加到模型中。 默認為false
  • pebble.exposeSessionAttributes :定義在與ViewResolver的模板合並之前,是否應將所有會話屬性添加到模型中。 默認為false
  • pebble.defaultLocale :定義將用於配置PebbleEngine的默認語言環境。 默認為null
  • pebble.strictVariables :在pebble.strictVariables啟用或禁用嚴格變量檢查。 默認為false

定制鵝卵石

小卵石擴展

定義為bean的擴展將被自動提取並添加到PebbleEngine中:

@Bean
public Extension myPebbleExtension1() {
    return new MyPebbleExtension1();
}

@Bean
public Extension myPebbleExtension2() {
    return new MyPebbleExtension2();
}

CAVEAT:如果它們分散在多個@Configuration類中,則Spring不會收集所有的bean。 如果使用此機制,請將所有Extension @Bean捆綁在一個@Configuration類中。

定制裝載機

自動配置pebbleLoader在上下文中查找名為pebbleLoader的bean。 您可以使用該名稱定義一個自定義加載器,它將用於配置默認的PebbleEngine:

@Bean
public Loader<?> pebbleLoader() {
    return new MyCustomLoader();
}

請注意:配置ViewResolver時,此加載程序的前綴和后綴都將被覆蓋。 您應該使用外部化的配置來更改這些屬性。

自定義PebbleEngine

同樣,您可以使用Bean名稱pebbleEngine來構建自定義引擎並將其設置為默認引擎:

@Bean
public PebbleEngine pebbleEngine() {
    return new PebbleEngine.Builder().build();
}

自定義ViewResolver

使用豆名稱pebbleViewResolver的ViewResolver也是pebbleViewResolver

@Bean
public PebbleViewResolver pebbleViewResolver() {
    return new PebbleViewResolver();
}

請注意:您需要更改Loader的前綴和后綴以匹配自定義ViewResolver的值。

使用Pebble完成其他任務

該入門程序的主要作用是配置Pebble以生成MVC View結果(典型的HTML)。 您可以為其他使用模式(如生成電子郵件正文)定義更多的PebbleEngine / Loader bean。 請記住,您不應將默認的Loader重用於其他Engine實例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM