遵循12因素规则时,我在哪里存储配置?

时间:2017-06-20 14:48:08

标签: spring-boot properties environment-variables 12factor

以下是链接12 factor

如果我应该将值存储在app.properties文件和环境变量中,我会感到困惑。

App.properties

Memory_Folder_Test = Test
Memory_Folder_Prod = Production
Memory_Folder_Dev = Development

Strong_threshold = 10
Low_Threshold = 2

Username = FirstUser
Password = PasswordSecret

理论上我应该把这些值放在哪里? application.properties还是作为环境变量?如果我没有读错,12因素的目的是删除属性文件中的值并将其外化。

3 个答案:

答案 0 :(得分:0)

使用spring cloud config之类的东西在外部存储属性。然后,您可以使用环境属性来定义从应用程序访问云配置所需的配置(如URL)

答案 1 :(得分:0)

我更喜欢将环境变量存储在文件中,加密文件并通过blackbox将加密文件检查为git:https://github.com/StackExchange/blackbox

Blackbox将处理加密/解密,因此很难将未加密的信用卡检入您的回购邮件。此外,openpgp的工作方式,您可以启用开发团队来加密/解密文件。

该项目由StackExchange维护(也就是运行此站点的人)。需要一些时间来计算openpgp / gpg(黑盒依赖于它),但它对我来说非常值得。我一直在linux和windows中使用(通过windows linux子系统)。

答案 2 :(得分:0)

您可以将值存储在application.properties文件中,但是spring允许您使用环境变量覆盖这些值。因此,它符合12个因子。