私はこれを何時間も頭の中に入れようとしてきましたが、私が間違っていることはあまり意味がありません。 .ymlファイルからJavaでMapオブジェクトを作成しようとしています。理由は地図のため、私は何/何人の子供が「現在」の下に表示されるのかわからないので、私はむしろそれから地図オブジェクトを作成する動的な方法を持っています。yamlの設定を読んで
以下は私の.ymlファイルです。私は、「現在」の下で、キーと値のペアを希望:
以下present:
now: LOCAL TESTING
later: testing
は(コメントアウトすべては私が試したものです - 異なる組み合わせで)私のconfigクラスです:
//@Data
@Component
@EnableConfigurationProperties
@ConfigurationProperties(prefix = "present")
//@ConfigurationProperties
public class stat {
//@Getter
//@Data
@Value("${present}")
private Map<String, String> present;
//private Map<String, String> present = new HashMap<String, String>();
}
私が試しました他のSOの投稿を見て、私はそれを理解するように感じるが、私のSpring Boot(v1.5.8)アプリケーションはその価値を見ていない。それは私のためにエラーをスローし続けるか、またはマップオブジェクトはnullです(または入力されていない)。
私は以下のコードを単一の値を取得しようとすると、それが動作するので、私はこの.ymlファイルから値を読み取ることができることを知っている:ここでは
@Data
@Value("${present.now}")
private String status; // String value "LOCAL TESTING"
は私がきた他のリンクあり試してみました:
Spring Boot yaml configuration for a list of strings
how to convert yml file to java pojo
私は明らかに何かが足りないのですか?ありがとう!
この応答をありがとうが、私はこのマップオブジェクトを作成しようとしています。元の質問で言及しなかったことは、キーが重複しない以外は子供がわからないということでした。むしろ、それらの値をハードコードするのではなく動的にマップオブジェクトを作成できるPOJOを作成しました。 – rj2700