gpt4 book ai didi

maven - 何时使用 "optional"依赖项,何时使用 "provided"范围?

转载 作者:行者123 更新时间:2023-12-03 10:14:28 26 4
gpt4 key购买 nike

<optional>true</optional> 修饰的依赖项或 <scope>provided</scope>当它们传递依赖时将被忽略。我已阅读 this ,我的理解就像Spring中@Component和@Service的区别,只是语义上的不同。
这样对吗?

最佳答案

除了注释之外,还有更重要的语义差异:“提供”依赖项预计由容器提供,因此如果您的容器为您提供休眠,则应将休眠标记为提供。
可选依赖主要用于减少一些库的传递负担。例如:如果您可以使用具有 5 种不同数据库类型的库,但通常只需要一种,则可以将依赖于库的依赖项标记为可选,以便用户提供他们实际使用的依赖项。如果你不这样做,你可能会遇到两种类型的问题:

  • 该库包含了大量的传递依赖项,而您实际上只需要很少的传递依赖项,因此您会无缘无故地炸毁您的项目。
  • 更危险的是:您可能会拉出两个具有重叠类的库,因此类加载器无法同时加载它们。这可能会导致您的库出现意外行为。
  • 关于maven - 何时使用 "optional"依赖项,何时使用 "provided"范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40393098/

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