java - 稳定的项目还应该使用 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
?
解决方案
Spring Boot 启动器工件只是一次包含多个 Spring Boot 工件的简写。我的公司在生产中提供使用入门工件的服务。当然,您可以将每个 starter 替换为它包含的工件列表,但我认为 Maven 建议更多的是关于不相关的传递依赖,例如如果您的应用程序从某个 JSON 库继承 Guava 作为传递依赖。
当传递依赖项都来自同一个源并被设计为一起工作时,我认为这不是问题。至少,我不这么认为。
推荐阅读
- amazon-web-services - 跟踪 AWS EC2 创建
- facebook-graph-api - 如何查看所有转化和自定义转化字段?Facebook 广告洞察 API
- java - How do I add up and remove repeated objects from ArrayList?
- spring-cloud-contract - 为什么 Stub Runner 不在 Classpath 模式下启动 Wiremock 服务器?
- distributed-system - 新节点如何加入 SWIM 协议中的组?
- javascript - 如何根据 html id 设置或获取 JavaScript 多个 cookie?
- c++ - 为什么 sizeof() 方法给出不同的结果?
- regex - 找不到这个简单的正则表达式
- node.js - Argon2 与节点 docker 容器
- css - 顶部和底部有 td 内容的表格