【问题标题】:12 factor application - dependency leak in12 因素应用程序 - 依赖泄漏
【发布时间】:2019-12-17 11:38:22
【问题描述】:

一直在查看12-factor 应用程序清单,在“依赖项”部分下提到了以下内容。

十二要素应用从不依赖于系统范围包的隐含存在。它通过依赖项声明清单完整而准确地声明所有依赖项。此外,它在执行期间使用依赖隔离工具来确保没有隐式依赖从周围系统“泄漏”。完整而明确的依赖规范统一应用于生产和开发。

在Spring boot应用的上下文中,以下是我的理解。

  1. 使用任何构建工具(如 maven/gradle)
  2. 在 pom.xml 或 build.gradle 中声明所有依赖项。

这是正确的理解吗?我无法从周围系统中理解“泄漏”的部分。

这是否意味着 JVM 也应该在应用程序中?

【问题讨论】:

  • 从技术上讲,是的,JVM 也应该是准确的版本。操作系统也是如此(所有驱动程序都可以启动),如果我们实际上是在谈论不让任何东西泄漏。不过,我怀疑这是否现实。

标签: java spring spring-boot 12factor


【解决方案1】:

我不是 SpringBoot 人。

想象一下,一个 SpringBoot 应用程序需要 n 个环境变量,您的应用程序已经为其设置了 p 个变量。 12 因子应用程序不应假设剩余的 n-p 环境变量已在操作系统中设置。事实上,如果它们是在操作系统级别设置的,那么这些环境变量泄漏到您的应用程序中,这可能会产生意想不到的结果。例如,堆内存在操作系统级别设置为对您的应用程序不“正确”的值。因此,您的应用程序不是在操作系统级别假设堆内存的“大量”设置,而是显式设置它。

这是一个很好的考虑因素,恕我直言。

【讨论】:

    猜你喜欢
    • 2021-08-16
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 2012-06-01
    • 2014-10-31
    • 2016-03-28
    相关资源
    最近更新 更多