我已经使用 graalvm 和 micronaut 构建了本机映像,但是我的本机映像应用程序无法使用 @Value 注释获取环境变量。当我尝试将应用程序作为 jar 运行时,它工作得很好。
@Singleton
public class WebComponentService {
@Value("${config.adyen.merchantaccount}")
private String merchantAccount;
}
这是我得到的错误
消息:设置字段值时出错:没有为类型找到字段“merchantAccount”:example.micronaut.getOriginKeys.WebComponentService 采用的路径:新 GetOriginKeysController([WebComponentService webComponentService]) io.micronaut.context.exceptions.DependencyInjectionException:无法为字段注入值[merchantAccount] 类:example.micronaut.getOriginKeys.WebComponentService
但是,当我尝试获取这样的环境变量时,它工作正常。
Map<String, String> environmentVars = System.getenv();
String merchantAccount = environmentVars.get("CONFIG_ADYEN_MERCHANTACCOUNT");
这就是我运行本机应用程序的方式
$ CONFIG_ADYEN_MERCHANTACCOUNT=CommercetoolsGmbHDE775 ./theNativeApp