Использование шаблонного движка Pebble с Spring Boot - PullRequest
0 голосов
/ 13 мая 2018

Поэтому я пытаюсь интегрировать шаблонизатор Pebble в мое приложение с весенней загрузкой, но я не понимаю, как это реализовать.

Так что я прочитал их сайт о том, как его реализовать, однакоговорит для Spring MVC, который, я думаю, не похож на Spring Boot.

Я также захожу на их страницу github, затем пытаюсь добавить их maven зависимость в POM.xml, но я не знаю, настрою ли я что-то или этоэто то же самое, что Thymeleaf или Усы, которые настроены автоматически.

Ссылка на их сайт: http://mitchellbosecke.com/pebble/

1 Ответ

0 голосов
/ 02 июля 2018

Добавьте начальную зависимость в ваш 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.

...