Использование шаблонного движка Pebble с Spring Boot
Поэтому я пытаюсь интегрировать шаблонизатор Pebble в мое приложение с весенней загрузкой, но я не совсем понимаю, как это реализовать.
Так что я прочитал их сайт о том, как это реализовать, однако там говорится о Spring MVC, который, я думаю, не похож на Spring Boot.
Я также захожу на их страницу github, затем пытаюсь добавить их maven-зависимость в POM.xml, но я не знаю, буду ли я что-то настраивать или это то же самое, что Thymeleaf или Mustache, которые автоматически настраиваются.
Ссылка на их сайт: http://mitchellbosecke.com/pebble/
1 ответ
Добавьте начальную зависимость в ваш файл 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>
Этого достаточно для автоматической настройки. Это включает в себя:
- Загрузчик, который выберет файлы шаблона, оканчивающиеся на
.pebble
от/templates/
Дир на пути к классам - PebbleEngine с настройками по умолчанию, настроенными с помощью предыдущего загрузчика
- 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
Галька расширения
Расширения, определенные как bean-компоненты, будут автоматически выбраны и добавлены в PebbleEngine:
@Bean
public Extension myPebbleExtension1() {
return new MyPebbleExtension1();
}
@Bean
public Extension myPebbleExtension2() {
return new MyPebbleExtension2();
}
CAVEAT: Spring не соберет все компоненты, если они разбросаны по нескольким классам @Configuration. Если вы используете этот механизм, объедините все Extension @Beans в один класс @Configuration.
Настройка загрузчика
Автоконфигуратор ищет компонент с именем 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.