【问题标题】:Dropwizard Freemarker Configuration: FreemarkerViewRenderer, ViewRenderer and ServiceFinder(jersey)Dropwizard Freemarker 配置:FreemarkerViewRenderer、ViewRenderer 和 ServiceFinder(jersey)
【发布时间】:2014-10-21 12:55:33
【问题描述】:

我正在尝试为字符串实体使用 freemarker 模板,但我不知道如何获取和处理模板。

在这篇文章中 -> https://groups.google.com/forum/#!topic/dropwizard-user/BUcI9y2FjLs 第一篇文章说,“似乎访问 Freemarker 配置对象的唯一方法是实现我自己的 FreemarkerViewRenderer 版本”。

任何人都可以确认,或者是否有其他方法可以从 freemarker 模板创建自定义消息?

有谁知道如何实现我自己的 FreemarkerViewRenderer 版本并将其添加到 Dropwizard,以便在我的资源类中可以访问它?

据我所知,我可以通过以下方式获得 FreemarkerViewRenderer:

        Iterable<ViewRenderer> found = com.sun.jersey.spi.service.ServiceFinder.find(ViewRenderer.class);
        for (ViewRenderer vr : found) {
            System.out.println(vr.getClass().getName());        
        }

但是我怎样才能用额外的 getConfig() 覆盖这个类呢?

【问题讨论】:

  • 应该可以创建新的freemarker配置,但我不知道会出现什么副作用。有谁知道拥有两个 freemarker 配置是否是个坏主意?一个自己构建,一个由 Dropwizard 构建?或者这最终只是一个单例?我发现的是,在每个教程中都说,重用配置对象,如果需要,不要创建两次或一次。

标签: templates jersey freemarker dropwizard


【解决方案1】:

我发现,配置类可以手动构建(参见freemarker+java教程)。然后你就有了 DW freemarker 实例和你自己的。那应该没问题。创建一个新的 freemarker 配置的主要问题是,它不是很便宜,这意味着为每个请求构建一个配置是一个坏主意,但如果你只有 2 个配置实例,那么应该没有问题。

最后,我创建了自己的配置,DW 有了第二个配置。配置缓存会丢失,如果你创建一个新的,但我只构建一个配置实例来服务我所有的请求,所以丢失缓存信息对我来说没有问题。

【讨论】:

    猜你喜欢
    • 2018-02-03
    • 1970-01-01
    • 1970-01-01
    • 2014-04-10
    • 2014-12-24
    • 1970-01-01
    • 1970-01-01
    • 2015-07-28
    • 1970-01-01
    相关资源
    最近更新 更多