首页 > 解决方案 > 稳定的项目还应该使用 spring-boot-starter-* 吗?

问题描述

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

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

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

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

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

标签: javaspringspring-bootmavenspring-boot-starter

解决方案


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

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


推荐阅读