我应该始终如一地使用spring boot starter依赖项吗?

时间:2016-01-20 15:06:03

标签: spring maven spring-boot

Spring引导提供了许多启动器依赖项,如spring-boot-starter,spring-boot-starter-batch,spring-boot-starter-test等等。这些依赖包括许多其他传递依赖。到目前为止,我在项目中一直使用这些启动依赖项。只有在没有库的启动器依赖的情况下,我才包含具体的依赖。

最近通过一位同事说他不想将所有这些初学者依赖项集成到项目中。他更愿意控制要包含的特定依赖项,因此您可以确保只有依赖项存在于实际需要的构建和类路径上。

我认为这是错误的做法,对吧?是否存在依赖于类路径(例如hamcrest)的缺点?

3 个答案:

答案 0 :(得分:1)

一般来说,我会同意你的同事尽可能保持你的依赖关系。

但是,如果您想使用与Spring Boot相关的任何功能,那么我建议您使用启动器,因为它们包含所有必需的依赖项并启用必要的自动配置类。如果您自己定义依赖项和配置,那么使用Spring Boot是没有意义的,您可以抛弃它。

答案 1 :(得分:0)

你的同事是对的。您不应该在类路径中没有完全没有使用的库。它使战争更大,组件扫描更慢。 (这也让你的IDE慢了一点。)

另一方面,通过自己维护所有依赖项是很多工作,但我认为这是值得的。

答案 2 :(得分:0)

说实话,我有点同意你的同事,+关于拉尔夫对他答案的建议。棘手的问题是Spring boot。我想说的是,依赖项和项目设置以及整体机制高度依赖于Spring Boot框架提供的现成决策和依赖项。你想最终逃脱所有这些开箱即用的好东西,特别是依赖管理等,那么恕我直言,你就会遇到麻烦。如果重构基于Spring的应用程序,尝试定义自己的项目结构,所有必需的依赖项,当然可以自己连接所有必需的插件,这是有意义的。但这会花费时间并且会增加复杂性......这就是为什么Spring Boot和其他框架倾向于在几个方面存在主张的原因。缓解那种痛苦。这真的是一个选择的问题,以及你希望将来如何控制。