12 因素应用 - 依赖泄漏



一直在浏览 12 因素应用程序清单,在下面的"依赖项"部分下提到。

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

在 Spring 启动应用程序的上下文中,以下是我的理解。

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

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

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

我不是SpringBoot的人。

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

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

最新更新