0

一直在浏览12 因素应用程序清单,在“依赖项”部分下提到了以下内容。

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

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

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

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

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

4

1 回答 1

1

我不是 SpringBoot 人。

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

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

于 2020-01-06T03:59:00.507 回答