繁体   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