Frühjahr: @NestedConfigurationProperty Liste in @ConfigurationProperties
Hallo, ich bin versucht zu Holen Sie sich die folgende Konfiguration am laufen.
@ConfigurationProperties(prefix="my")
public class Config {
@NestedConfigurationProperty
private List<ServerConfiguration> servers = new ArrayList<ServerConfiguration>();
public List<ServerConfiguration> getServers() {
return this.servers;
}
}
@ConfigurationProperties(prefix = "server")
public class ServerConfiguration {
private String name;
private String description;
}
So, ich möchte mehrere server-configs verschachtelte Objekte.
Ich habe versucht, die properties mit den folgenden properties-Datei. Ich kann sehen, dass die Liste aufgenommen, durch die Elemente, sondern die Mitglieder die server sind nie festgelegt (name, Beschreibung)
my.servers[0].name=test
my.servers[0].server.name=test
my.servers[1].name=test
my.servers[1].server.name=test
Du musst angemeldet sein, um einen Kommentar abzugeben.
ServerConfiguration
@ConfigurationProperties
ServerConfiguration.description
und Eigentummy.servers[X].server.name=test
Erweitern, was Matthias schon sagte.
@ConfigurationProperties
sollte nur festgelegt werden, auf root Objekte (d.h. Objekte, die verantwortlich sind, um mit einem konkreten Präfix. Es gibt keine Notwendigkeit, mit Anmerkungen von verschachtelten Objekten mit es.@NestedConfigurationProperty
ist nur verwendet, indem die meta-Daten-generator (um anzuzeigen, dass eine Eigenschaft, die nicht einen einzelnen Wert, sondern etwas, das wir erforschen sollen, zu generieren, die zusätzliche meta-Daten. Im Fall derList
es gibt keine endliche Menge von Eigenschaften, also die meta-Daten werden halt in der Liste.In jedem Fall benötigen Sie eine getter-und eine setter-für jeden einzigartige Eigenschaft. Das tun wir nicht, Bereich verbindliche und wir benötigen einen public getter zu vermeiden, dass unnötige Eigenschaften in den meta-Daten.