Ich habe eine application.properties mit einer Eigenschaft:
%Vor%Ich habe ein Feld in der Klasse:
%Vor%Ich habe ein enum:
%Vor%Wenn ich Anwendung mit einem
ausführe %Vor%Ich habe einen Fehler:
%Vor%Der Wert des Typs [java.lang.String] kann nicht in den erforderlichen Typ konvertiert werden [com.blabla.domain.enums.Property]: keine übereinstimmenden Editoren oder Konvertierungen Strategie gefunden.
Funktioniert gut.
Gibt es eine Möglichkeit, die Groß- / Kleinschreibung des Werts zu berücksichtigen? Wie ABC, Abc, abc sollte jedes Match funktionieren. Vielen Dank im Voraus.
HINWEIS: Ich habe diese Frage gesehen - Spring 3.0 MVC Binding Enums Case Sensibel , aber in meinem Fall habe ich mehr als 10 enums / Werte (und erwarte mehr) Klassen und 10 verschiedene benutzerdefinierte Eigenschaftsordner zu implementieren wäre schmerzhaft, ich brauche eine generische Lösung.
@Value
und @ConfigurationProperties
stimmen nicht überein. Ich konnte nicht genug betonen, wie @ConfigurationProperties
besser ist.
Zuerst müssen Sie Ihre Konfiguration in einem einfachen POJO entwerfen, das Sie injizieren können, wo immer Sie wollen (anstatt Ausdrücke in Annotationen zu haben, die Sie leicht mit einem Tippfehler brechen können). Zweitens bedeutet die Metadaten-Unterstützung, dass Sie sehr leicht Holen Sie sich in Ihrer IDE automatisch Vervollständigung für Ihre eigenen Schlüssel .
Und schließlich gilt die im Dokument beschriebene entspannte Bindung nur für @ConfigurationProperties
. @Value
ist eine Spring Framework-Funktion und ist sich einer entspannten Bindung nicht bewusst. Wir beabsichtigen, dies im Dokument deutlicher zu machen .
TL; DR abc
arbeitet mit @ConfigurationProperties
, aber nicht mit @Value
.
Bei den Werten wird zwischen Groß- und Kleinschreibung unterschieden (Sie können Schlüssel oder Kennwörter aus der Umgebung berücksichtigen), und die entspannte Bindung gilt nur für die Schlüssel. Bei Java-Enum-Namen wird ebenfalls zwischen Groß- und Kleinschreibung unterschieden ( A
und a
sind unterschiedliche Werte), und Sie möchten keine Groß- / Kleinschreibung unterdrücken.
Verwenden Sie einfach den richtigen Fall in Ihren Konfigurationseigenschaften.
Tags und Links java spring spring-mvc enums spring-boot