Добавьте начальную зависимость в ваш pom.xml:
spring-boot v1
<dependency>
<groupId>io.pebbletemplates</groupId>
<artifactId>pebble-spring-boot-starter</artifactId>
<version>2.6.2</version>
</dependency>
OR
spring-boot v2
<dependency>
<groupId>io.pebbletemplates</groupId>
<artifactId>pebble-spring-boot-2-starter</artifactId>
<version>2.6.2</version>
</dependency>
Этого достаточно для запуска автоконфигурации. Это включает в себя:
- Загрузчик, который будет выбирать файлы шаблонов, заканчивающиеся на
.pebble
из /templates/
dir на пути к классам
- a PebbleEngine с настройками по умолчанию, настроенными с помощью предыдущего загрузчика
- a ViewResolver, который будет выводить
text/html
в UTF-8
ОБРАТИТЕ ВНИМАНИЕ: стартер зависит от 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
: включить или отключить строгую проверку переменных в PebbleEngine. По умолчанию false
Камешек для настройки
Pebble extensions
Расширения, определенные как бины, будут автоматически выбраны и добавлены в PebbleEngine:
@Bean
public Extension myPebbleExtension1() {
return new MyPebbleExtension1();
}
@Bean
public Extension myPebbleExtension2() {
return new MyPebbleExtension2();
}
CAVEAT: Spring не соберет все компоненты, если они разбросаны по нескольким классам @Configuration. Если вы используете этот механизм, объедините все Extension @Beans в один класс @Configuration.
Настройка загрузчика
Автоконфигуратор ищет bean-компонент с именем pebbleLoader
в контексте. Вы можете определить пользовательский загрузчик с этим именем, и он будет использоваться для настройки PebbleEngine по умолчанию:
@Bean
public Loader<?> pebbleLoader() {
return new MyCustomLoader();
}
ОБРАТИТЕ ВНИМАНИЕ: префикс и суффикс этого загрузчика будут перезаписаны при настройке ViewResolver. Для изменения этих свойств следует использовать внешнюю конфигурацию.
Настройка PebbleEngine
Аналогично, вы можете создать собственный движок и сделать его по умолчанию, используя имя компонента pebbleEngine
:
@Bean
public PebbleEngine pebbleEngine() {
return new PebbleEngine.Builder().build();
}
Настройка ViewResolver
То же самое относится и к ViewResolver, используя имя компонента pebbleViewResolver
:
@Bean
public PebbleViewResolver pebbleViewResolver() {
return new PebbleViewResolver();
}
ОБРАТИТЕ ВНИМАНИЕ: вам нужно изменить префикс и суффикс загрузчика в соответствии со значениями пользовательского ViewResolver.
Использование Pebble для других задач
Основная роль этого стартера - настроить Pebble для генерации результатов MVC View (типичный HTML). Вы можете определить больше бобов PebbleEngine / Loader для других шаблонов использования (например, генерация тел электронной почты). Помните, что вам не следует повторно использовать загрузчик по умолчанию для других экземпляров Engine.