Springブートを使用して初期化するときにYAMLプロパティファイルからカスタムプロパティをロードしようとしています。私はそれを行う方法について無数のチュートリアルを見つけ、彼らは働いています。問題は、例えばLocalDateTimeのようにPOJOSをどのようにインスタンス化するかを見つけることができないということです。私のコードは以下の通りです。YAMLプロパティファイル(Java&Spring Boot)からPOJO(LocalDateTime)をインスタンシエート
default-film-showings:
filmShowings:
- id: 1
dateTime: 2018-07-13 21:00:00
を次のように
@Configuration
@ConfigurationProperties(prefix="default-film-showings")
public class FilmShowings {
private List<FilmShowing> filmShowings;
//Constructors, Getters, setters etc.
public static class FilmShowing {
private Integer id;
private Film film;
private Theatre theatre;
private LocalDateTime dateTime;
//Constructors, Getters, setters etc.
}
}
私のYAMLファイルには、私の問題は、私はまた、この変形を試みた
Failed to convert property value of type 'java.lang.String' to required type 'java.time.LocalDateTime' for property 'filmShowings[0].dateTime';
初期化時に次のエラーを取得することで、現在で
default-film-showings:
filmShowings:
- id: 1
dateTime:
date:
year: 2018
month: 7
day: 13
time:
hour: 21
minute: 0
second: 0
nano: 0
次のエラー
Error creating bean with name 'filmShowings': Could not bind properties to FilmShowings
ヘルプがありますか?私は次のスレッドJSON Java 8 LocalDateTime format in Spring Bootを見ましたが、それは私の問題を解決しませんでした。
同じように、Film POJO属性を別のデフォルトプロパティにリンクする方法はありますか?
は私があまりにもこのような何かを追加することができます
default-films:
films:
- id: 1
filmName: Spider-Man
ファイル私のプロパティに次のように持って言いますか?
default-film-showings:
filmShowings:
- id: 1
film: default-films.films[0]
dateTime: whatever I need to do here to make it work
これは文字列としてdefault-films.films [0]を読み取っているため、 'YAML'オブジェクトと一致しません。
助けが必要ですか?春の名誉に@ConfigurationProperties
クラスの@DateTimeFormat
注釈を想定し
ISO形式の文字列を使用するとどうなりますか?例 '2007-03-01T13:00:00'? – Rafa
こんにちは。あなたの答えをありがとう。私は現在、この '@DateTimeFormat(pattern =" yyyy-MM-ss HH:mm:dd "、iso = DateTimeFormat.ISO.DATE_TIME)のprivate LocalDateTime dateTime;を、そしてYAMLではdateTime:" 2007- 03-01T13:00:00 "。 'java.lang.String型のプロパティ値を' java.time.LocalDateTime '型に変換できませんでした。 –