[英]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中:
<dependency>
<groupId>io.pebbletemplates</groupId>
<artifactId>pebble-spring-boot-starter</artifactId>
<version>2.6.2</version>
</dependency>
要么
<dependency>
<groupId>io.pebbletemplates</groupId>
<artifactId>pebble-spring-boot-2-starter</artifactId>
<version>2.6.2</version>
</dependency>
這足以啟動自動配置。這包括:
/templates/
dir中選擇以.pebble
結尾的模板文件 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時,此加載程序的前綴和后綴都將被覆蓋。 您應該使用外部化的配置來更改這些屬性。
同樣,您可以使用Bean名稱pebbleEngine
來構建自定義引擎並將其設置為默認引擎:
@Bean
public PebbleEngine pebbleEngine() {
return new PebbleEngine.Builder().build();
}
使用豆名稱pebbleViewResolver
的ViewResolver也是pebbleViewResolver
:
@Bean
public PebbleViewResolver pebbleViewResolver() {
return new PebbleViewResolver();
}
請注意:您需要更改Loader的前綴和后綴以匹配自定義ViewResolver的值。
該入門程序的主要作用是配置Pebble以生成MVC View結果(典型的HTML)。 您可以為其他使用模式(如生成電子郵件正文)定義更多的PebbleEngine / Loader bean。 請記住,您不應將默認的Loader重用於其他Engine實例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.