gpt4 book ai didi

java - 在不向客户端应用程序公开依赖项的情况下使用 Spring

转载 作者:搜寻专家 更新时间:2023-11-01 03:43:59 29 4
gpt4 key购买 nike

我正在为多个客户端编写 Java API,并且在内部希望使用 Spring 及其多个功能,但我不想向客户端公开我的依赖项。

这可能吗?

因此,如果我的客户使用不同版本的 spring,它们是否会与我的内部 Spring 依赖项隔离。

如果是这样,我的 spring 依赖项会在我的 jar 内部捆绑吗?以及我的客户端应用程序是否需要自定义类加载器?

我听说您可以通过 OSGI 包使用它,但我想知道这是否能满足我的要求。

我的 API 的客户端不会启用 OSGI,或者我们当前没有使用 OSGI 包的环境。

最佳答案

这样做并不可行,也不可取。为什么要“隐藏”依赖项?您是否还想隐藏对您可能使用的任何日志记录包的依赖(例如)?

如果您的实现中有依赖项,那么最好将它们发布,因为这会大大减少 API 用户的痛苦,因为他们甚至在尝试使用您的代码之前就会知道可能存在哪些冲突。

不要忘记,您的用户实际上是开发人员,我相信他们宁愿预先了解任何地雷或要求。

编辑 - 关于 OSGi:

OSGi 肯定会处理您的冲突依赖项问题,但它也将依赖于在 OSGi 环境中进行部署,您没有提到您的客户就是这种情况。此外,仍然不建议将那些依赖项“隐藏”在一个包中。 OSGi 的本质允许这些相互冲突的依赖关系共存于同一应用程序中。

关于java - 在不向客户端应用程序公开依赖项的情况下使用 Spring,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7324589/

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