【问题标题】:Should stable project still use spring-boot-starter-*?稳定的项目还应该使用 spring-boot-starter-* 吗?
【发布时间】:2020-08-14 06:52:50
【问题描述】:

有许多名为 spring-boot-starter-* 的 Maven 工件。顾名思义,它们对于开始使用 Spring Boot 的应用程序项目非常有用。

但是,应用项目稳定后,是否应该继续使用这些spring-boot-starter-*

我担心这样做使用了“传递依赖”的Maven机制,似乎违反了Maven documentation中的建议:

虽然传递依赖可以隐式包含所需的依赖,但最好在自己的源代码中明确指定直接使用的依赖。

例如,假设一个应用项目直接使用Spring注解@EventListener。注解在 Maven 工件 spring-context 中,spring-context 包含在 spring-boot-starter 中。应用项目稳定后是否应该直接指定对spring-context的依赖?

【问题讨论】:

    标签: java spring spring-boot maven spring-boot-starter


    【解决方案1】:

    Spring Boot 启动器工件只是一次包含多个 Spring Boot 工件的简写。我的公司在生产中提供使用入门工件的服务。当然,您可以将每个 starter 替换为它包含的工件列表,但我认为 Maven 建议更多的是关于不相关的传递依赖,例如如果您的应用程序从某个 JSON 库继承 Guava 作为传递依赖。

    当传递依赖都来自同一个源并且被设计为一起工作时,我认为这不是问题。至少,我不这么认为。

    【讨论】:

      猜你喜欢
      • 2017-12-15
      • 2020-03-26
      • 2018-01-05
      • 1970-01-01
      • 2019-10-28
      • 2014-04-07
      • 2018-10-15
      • 2019-06-12
      • 2016-01-29
      相关资源
      最近更新 更多