Java Dropwizard环境变量

Java Dropwizard环境变量,java,jersey,environment-variables,dropwizard,Java,Jersey,Environment Variables,Dropwizard,我在为dropwizard环境配置找到好的资源时遇到了问题,dropwizard的手册对我没有什么帮助 我正试图将我的jwtSecret保存在我的配置config.yml中,作为一个环境变量,这样即使我将我的代码开源为 jwtSecret: ${JWT_SECRET} 我已经阅读了,我知道我需要添加substitutionsourceProvider,以成功地用我的环境变量替换配置。但是,我找不到保存环境变量的位置。dropwizard是否在某个特定的位置找到它,或者我是否需要在某个位置添加环

我在为dropwizard环境配置找到好的资源时遇到了问题,dropwizard的手册对我没有什么帮助

我正试图将我的
jwtSecret
保存在我的配置
config.yml
中,作为一个环境变量,这样即使我将我的代码开源为

jwtSecret: ${JWT_SECRET}

我已经阅读了,我知道我需要添加
substitutionsourceProvider
,以成功地用我的环境变量替换配置。但是,我找不到保存环境变量的位置。dropwizard是否在某个特定的位置找到它,或者我是否需要在某个位置添加环境变量的路径?

我不完全确定您需要帮助的部分,但是添加环境变量涉及到很多问题

首先,我们通过将其添加到应用程序的初始化函数来启用此功能:

bootstrap.setConfigurationSourceProvider(new SubstitutingSourceProvider(bootstrap.getConfigurationSourceProvider(), new EnvironmentVariableSubstitutor(false)));
然后是config.yml:

jwtSecret: ${JWT_SECRET}
要访问应用程序中的变量,需要将其添加到应用程序的配置类中:

private String jwtSecret;
(+它的getter和setter)


最后,您需要将JWT_SECRET变量添加到您的系统环境变量中。这取决于您使用的操作系统,以及您想临时还是永久设置它。

我不完全确定您需要帮助的部分,但添加环境变量涉及到许多要点

首先,我们通过将其添加到应用程序的初始化函数来启用此功能:

bootstrap.setConfigurationSourceProvider(new SubstitutingSourceProvider(bootstrap.getConfigurationSourceProvider(), new EnvironmentVariableSubstitutor(false)));
然后是config.yml:

jwtSecret: ${JWT_SECRET}
要访问应用程序中的变量,需要将其添加到应用程序的配置类中:

private String jwtSecret;
(+它的getter和setter)


最后,您需要将JWT_SECRET变量添加到您的系统环境变量中。这取决于您使用的操作系统,以及您想临时还是永久设置它。

在我的项目中是否可能有一个.env文件来保存环境变量,或者我是否需要将其保存在.zshrc中?这取决于您如何运行应用程序。例如,我使用IntelliJ进行开发,并且我在IntelliJ的项目运行配置窗口中配置了环境变量,如果我从IntelliJ之外的java包运行应用程序,我首先运行一个配置了环境值的shell脚本,然后运行包——因此我的.bashrc中也没有环境变量。在我的暂存和生产环境中,它们已配置为k8s容器。我的项目中是否可能有一个.env文件来保存环境变量,或者我是否需要将其保存在.zshrc中?这取决于您如何运行应用程序。例如,我使用IntelliJ进行开发,并且我在IntelliJ的项目运行配置窗口中配置了环境变量,如果我从IntelliJ之外的java包运行应用程序,我首先运行一个配置了环境值的shell脚本,然后运行包——因此我的.bashrc中也没有环境变量。在我的暂存和prod环境中,它们已针对k8s容器进行了配置。