Spring Boot uygulamasında aşağıdaki içeriğe sahip application.yaml yapılandırma dosyasına sahibim. Ben bu enjekte ediyorumSpring Boot'daki nesnelerin listesi için Yaml'de eşleme listesi
@ConfigurationProperties(prefix = "available-payment-channels-list")
@Configuration
@RefreshScope
public class AvailableChannelsConfiguration {
private String xyz;
private List<ChannelConfiguration> channelConfigurations;
public AvailableChannelsConfiguration(String xyz, List<ChannelConfiguration> channelConfigurations) {
this.xyz = xyz;
this.channelConfigurations = channelConfigurations;
}
public AvailableChannelsConfiguration() {
}
// getters, setters
@ConfigurationProperties(prefix = "available-payment-channels-list.channelConfigurations")
@Configuration
public static class ChannelConfiguration {
private String name;
private String companyBankAccount;
public ChannelConfiguration(String name, String companyBankAccount) {
this.name = name;
this.companyBankAccount = companyBankAccount;
}
public ChannelConfiguration() {
}
// getters, setters
}
}
: istediğim
available-payment-channels-list:
xyz: "123"
channelConfigurations:
-
name: "Company X"
companyBankAccount: "1000200030004000"
-
name: "Company Y"
companyBankAccount: "1000200030004000"
Ve @Configuration nesne PaymentConfiguration nesnelerin listesi ile doldurulması: Ben kanal yapılandırmaları listesini içeren bir yapılandırma nesnesi olarak enjekte sahip olmak istiyorum @Outowired kurucu ile normal bir fasulye. xyz Değeri doğru doldurulur, ancak Bahar nesnelerin listesine yaml ayrıştırmak çalıştığında ben
nested exception is java.lang.IllegalStateException:
Cannot convert value of type [java.lang.String] to required type
[io.example.AvailableChannelsConfiguration$ChannelConfiguration]
for property 'channelConfigurations[0]': no matching editors or
conversion strategy found]
burada ne yanlış Herhangi ipuçları alıyorum?
Tam olarak aynı sorun var: Ben bir çok şey denedim ama boş bir nesneyi veya aynı hatayı aldım ... Türün değerini dönüştüremiyor ... Dize .... MyObject ... eşleşen düzenleyiciler yok veya dönüşüm stratejisi bulundu. Garip bir şey, Spring Boot'da SnakeYAML parametrelerini veya davranışlarını etkileyebilecek hiçbir şey değiştirmedim ... Aslında, ne halt? – Alex
Neredeyse unutuyordum, Spring Boot kullanıyorum 1.2.6 – Alex