[spring-projects/spring-boot]为 mustache.java 提供自动配置

2024-07-08 821 views
4

下午好,

我正在检查 Spring Boot 的 Mustache 支持,并注意到启动器的传递依赖性:

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-mustache</artifactId>
    </dependency>

这个项目是: https://github.com/samskivert/jmustache

但查看 Mustache 的文档: https://mustache.github.io/

我注意到官方的 Java 实现是: https://github.com/spullara/mustache.java

也许 Spring for Spring Boot 3.0 可以考虑使用官方依赖项。

你有什么意见?

参考:

提前谢谢了

胡安安东尼奥

回答

4

早上好@philwebb & @wilkinsona,

本期的动机是展示 的主要传递依赖关系的演变spring-boot-starter-mustache。也许在 2015-2016 年的设计阶段,这Spring Boot Starter两个库可能会有类似的活动和相关性,但现在到了 2022 年,这两个库的速度不一样了,这就是重点。话虽如此,我并不是说这没有jmustache涵盖 的目标,Spring Boot Starter但事实上比社区本身的上下文mustache.java更有意义,也许依赖性审查可能是不同 维护操作中的一项定期活动: https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#using.build-systems.startersjmustacheMustacheSpring Boot Starters

我分享一些关于贡献的链接:

@philwebb 如果你愿意,我将更详细地回顾这两个库,以找出差异,并理解为什么mustache.java更受欢迎(1.7k 颗星)vs jmustache(0.7k 颗星)

  • 的 github 位置在哪里 spring-boot-starter-mustache

胡安安东尼奥

9

自动配置的代码是 的一部分spring-boot-autoconfigure,可以在这里找到。启动器本身只是构建系统元数据。它的源代码可以在这里找到。

1

JMustache 在 Android 下列出,但原因尚不清楚。

可能是因为它使用 Java 7 作为基准,而 mustache.java 需要 Java 8。

8

从一个版本迁移到另一个版本是一个重大变化,因为我们在配置中公开了库类型。我们应该仔细考虑这一点,因为我们可能会让社区的一部分人更难升级到 3.0 版本 - 增加的价值肯定要超过迁移的痛苦。

4

完全同意你的观点@bclozel,但至少要知道相关的替代方案和努力。

5

如果您希望我们查看此问题,请提供所需信息。如果未在接下来的 7 天内提供信息,此问题将被关闭。

2

你好,

我正在做分析,但我需要更多时间。我会利用业余时间尝试合作 :)

胡安安东尼奥

4

如果您希望我们查看此问题,请提供所需信息。如果未在接下来的 7 天内提供信息,此问题将被关闭。

6

由于缺少所需反馈而关闭。如果您希望我们查看此问题,请提供所需信息,我们将重新打开此问题。

2

这可以与 JMustache 现有的自动配置一起完成,也可以作为替代方案。

4

仅代表我的看法:

  • jmustache似乎被更多的项目使用(作为依赖项)mustache.java
  • mustache.java似乎有一个稍微大一点的社区(考虑到前一点,这很奇怪)
  • 目前文档显然更适合jmustache
  • 我认为 jmustache它的 API 比mustache.java
  • 模板继承是规范中的一个可选功能,也是一个有争议的功能,所以它不能说服我
  • “更换引擎”可能会破坏一些东西,因为jmustache还有几个自定义扩展

所以最后,我目前并不赞成这样的改变。同时提供这两种服务也可能增加混乱和分裂,所以我不太喜欢它。这是我的看法。我与这两种服务都没有关系。

0

也许值得注意的是,另一个用于 Java 的 Mustache 模板引擎jstachio(也是类型安全和静态编译的),正在获得普及并且保持对 Spring(包括 Spring Boot starter)的支持。

鉴于 Java 的 Mustache 模板引擎市场已经很分散,也许 Spring Boot 参考手册可以包含一两句话来提及其他选项,并引导用户进行研究,然后再决定最适合其项目的 Mustache 模板引擎?

4

在我正在开发的应用程序中使用 jstachio 后,我倾向于使用 jmustache。jmustache 和 mustache.java 看起来都很稳定,但它们的开发并不多。

我并不认为模板继承存在争议;我发现它是我采用的任何模板工具的要求,但显然,其他工具可能会有所不同,这没关系。