我正在尝试使用@ConfigProperty
在我的Quarkus应用程序中读取环境变量,但没有成功。我认为仅指定变量名应该就足够了,但它不起作用:
@ConfigProperty(name = "MY_ENV_VAR")
String envVar;
我还尝试在应用程序中指定一个属性。属性
my.var=${MY_ENV_VAR:defaultValue}
读起来就像
@ConfigProperty(name = "my.var")
String myVar;
但变量始终为空。
我错过什么了吗?在Quarkus中读取环境变量的正确方法是什么
我正在使用Quarkus 1.2.0。最终的
我和我的同事已经找到了问题的根源。我试图在构造函数中读取一个注释为@ConfigProperty
的字段,但属性仅在调用构造函数后才被注入。
我提供了一个工作示例:
package org.acme.config;
import org.eclipse.microprofile.config.inject.ConfigProperty;
import javax.enterprise.context.ApplicationScoped;
@ApplicationScoped
public class EnvGreetingService {
private final String varA;
@ConfigProperty(name = "ENV_VAR_B")
String varB;
public EnvGreetingService(@ConfigProperty(name = "ENV_VAR_A") String varA) {
System.out.println("constructor varA=" + varA);
System.out.println("constructor varB=" + varB);
this.varA = varA;
}
public void greetWithEnvVar() {
System.out.println("method varA=" + varA);
System.out.println("method varB=" + varB);
}
}
注意:应用程序中不需要映射环境变量。属性
控制台输出将是:
constructor varA=a
constructor varB=null
method varA=a
method varB=b
因此,如果希望在构造函数中使用应用程序属性或环境变量,则应将其注入构造函数参数中。
我正在使用Postman的打包应用程序版本来针对我的Rest API编写测试。我正在尝试管理连续测试之间的状态。为了方便起见,向Javascript测试运行时公开的Postman对象有设置变量的方法,但没有用于读取的方法。 现在,我可以在下一次调用中通过{{key}}结构读取这个值,该结构从当前环境中获取值。但是,这在测试中不起作用;它只在建筑材料中起作用。 那么,有没有人可以从测试中读到这些东西
问题内容: 如何在应用程序上下文中读取系统环境变量? 我想要类似的东西: 要么 取决于环境。 我的应用程序上下文中可以有这样的东西吗? 根据系统环境变量设置实际值的地方 我正在使用Spring 3.0 问题答案: 你接近:o)Spring 3.0添加了Spring Expression Language。你可以使用 结合应该可以解决你的问题。 还请注意@yiling的评论: 为了访问系统环境变量(
5.3.1 $%envVarName% 当编译时,$%envVarName% 将会被环境变量 envVarName 替换。
问题内容: 有没有办法在Node.js代码中读取环境变量? 例如Python的。 问题答案: process.env.ENV_VARIABLE 您要访问的变量的名称在哪里。
在SpringBoot中读取环境变量的最佳方法是什么? 在Java中,我使用了以下方法: 是否可以使用注释来实现?
问题内容: 我在EC2竞价型实例上运行R,并且需要R终止实例并在脚本运行后取消竞价请求。 为此,我在环境变量中设置了“请求ID” ,我的计划是在脚本准备好后将以下代码简单地调用到R中 我遇到的问题是R无法“看到”我从外部R 键入时看到的相同环境变量,因此该命令无法正常工作。 我已经检查了一下,如果我将环境变量设置为R,就可以看到这些变量,但这是另一个问题。由于这些变量是动态的(每次创建竞价型实例时