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