java - Micronaut @Value 在运行原生镜像时没有获取环境变量
问题描述
我已经使用 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
解决方案
您在此处使用的密钥@Value("${config.adyen.merchantaccount}")
不同于environmentVars.get("CONFIG_ADYEN_MERCHANTACCOUNT");
确保它们相同
推荐阅读
- .net-core - .NET Core - 如何在团队中管理用户机密
- java - 创建从数组构建的多个 JTable 不太奏效
- jsf - JSF:获取当前页面和上一页
- javascript - 在 jquery 中更改列表切换
- spring - 在 Spring Boot RestController 中从 SecurityContextholder 获取用户 ID 是个好主意吗?
- node.js - 控制服务器的安全客户端按钮
- reactjs - 平滑滚动到锚链接和延迟加载的图像
- reactjs - 有什么方法可以制作
作为可编辑视图? - python - 您如何使用 Python 处理 SSL 证书存储?
- php - 从 Linux 中的 bash 脚本调用 PHP(无脂肪框架)文件给了我“未指定路由”错误