Spring Boot: Ändern des Eigenschaftsplaceholder-Signifikators

8

Was ist der einfachste Weg, das Präfix und Suffix für den Eigenschaftsplatzhalter im Spring Boot zu ändern?

Der Standardwert ist @Value("${some.property}") , jedoch sieht dies in Kotlin hässlich aus, da es maskiert werden muss - $ {something} ist eine Sprachfunktion in Kotlin für String-Vorlagen.

    
Jasper Blues 20.11.2015, 07:21
quelle

3 Antworten

21

Sie können das Präfix anpassen, indem Sie die folgenden Beans in Ihrer Konfiguration deklarieren:

%Vor%

Wenn Sie einen vorhandenen Code haben (wie Spring Boot-Aktuatoren oder @LocalServerPort ), der die ${...} -Syntax verwendet, sollten Sie Folgendes deklarieren:

%Vor%

Das Entkommen des Dollars wie in @Value("${some.property}") ist eine weitere mögliche Option, die keine @Bean Deklaration benötigt.

Für Spring-Boot-Tests, die mit @SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT) konfiguriert wurden, können Sie @LocalServerPort anstelle von @Value("${local.server.port}") verwenden.

@ConfigurationProperties wäre eine bessere Alternative, insbesondere mit Kotlin-Datenklassen, aber momentan müssen Sie Kotlin-Klassen mit nullierbaren var -Eigenschaften verwenden, da nur Getter / Setter unterstützt werden. Sie können für dieses Problem oder einen Kommentar abstimmen, um Ihr Interesse an der Unterstützung von Spring Boot 2 zu bekunden .x.

    
Sébastien Deleuze 24.11.2015, 00:14
quelle
2

Wenn ich den Ratschlag aus der Antwort von dox benutzte, endete ich mit etwas wie:

%Vor%

Im Frühjahr müssen @ConfigurationProperties Objekte dem Java Beans Muster folgen und daher veränderbar sein. Für mich scheint die Konfiguration so zu sein, als ob sie während des ganzen Lebenszyklus der App generell statisch sein sollte, und anstatt die Komplexität der Argumentation über den Zustand hinzuzufügen, injizierte sie stattdessen die unveränderliche Schnittstelle.

    
Jasper Blues 23.11.2015 04:09
quelle
1

Sie haben eine neue Funktion, die Java-Klassen verwendet, die mit @ConfigurationProperties kommentiert sind. Das sieht in Kotlin gut aus und ist Refactoring sicher. Sie sollten es versuchen:

Ссылка

    
d0x 20.11.2015 08:17
quelle

Tags und Links