gpt4 book ai didi

java - Gradle 和 Spring Boot : choose dependency with implementation

转载 作者:行者123 更新时间:2023-11-30 10:25:21 26 4
gpt4 key购买 nike

我有:

  • 具有纯接口(interface)的库 X
  • X1, X2, X3, ..., XN 实现了来自 的接口(interface)X
  • SpringBoot 项目 Y 使用 Gradle 4 构建并使用 X

X 的实现取决于我们为其准备构建的客户端。

我想到的选项:

  • 有条件的 Gradle build gradle build -Pclient=client1 将只包含一个特定的实现
  • 将所有实现作为依赖项包括在内,并具有将在运行时发现并定义使用的实现的配置变量。

现在有一个问题,要遵循的最佳做法是什么?

最佳答案

处理所提出问题的两种机制或多或少是等效的。我发现仅包含单个依赖项(即 XN)不仅更容易使用此技术堆栈实现,而且更可靠:

  • 可靠,因为在运行时只发现一个特定的依赖项——spring 不可能将 DI 搞砸
  • 更简单,因为如果只包含一个实现,则无需手动处理 DI。
  • 如果在运行时只使用单一实现 - 包含 else 的原因是什么?

这里有两件重要的事情:

  • 提供详细的日志消息,不仅包括哪个实现(在构建期间),还提供使用哪个实现(在运行时)
  • 可以在 war 级别或 dependencies block 中以两种不同的方式在 gradle 中完成。就个人而言,我会选择依赖 block - 它使 war 更容易构建。

关于java - Gradle 和 Spring Boot : choose dependency with implementation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46268154/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com