[JAVA] So ändern Sie den Einstellungswert von application.properties beim Booten im Frühjahrsstart

Der Einfluss der neuen Corona zeigt sich allmählich am Arbeitsplatz, und ich bin begeistert, wenn ich aufhöre zu arbeiten.

In der Zwischenzeit war ich zum ersten Mal seit langer Zeit süchtig danach und beschloss, es aufzunehmen. Wenn Sie es verstehen können, ist es außerdem eine sehr einfache Geschichte und ziemlich verbeult. Vielleicht ist es für Java-Enthusiasten zu rudimentär, um es im Web zu veröffentlichen. ..

Was du machen willst

8h für so eine einfache Sache.

Suchtpunkte

Ereigniswiedergabe

https://github.com/t-o-z/configuration-demo

Einrichtung gemäß Readme,

docker run config-demo

Dann ist es in application.properties enthalten

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.2.4.RELEASE)

2020-02-27 09:51:15.557  INFO 7 --- [           main] c.z.c.ConfigurationDemoApplication       : Starting ConfigurationDemoApplication v0.0.1-SNAPSHOT on 6c889b4a8ada with PID 7 (/usr/src/myapp/configuration-demo-0.0.1-SNAPSHOT.jar started by root in /usr/src/myapp)
2020-02-27 09:51:15.566  INFO 7 --- [           main] c.z.c.ConfigurationDemoApplication       : No active profile set, falling back to default profiles: default
2020-02-27 09:51:16.918  INFO 7 --- [           main] c.z.c.ConfigurationDemoApplication       : Started ConfigurationDemoApplication in 2.482 seconds (JVM running for 3.809)
key1-value

Wird angezeigt.

Wenden Sie application.properties unter Klassen an

sample.key1=key1-value1

Auch wenn Sie es neu schreiben und erneut ausführen

user:configuration-demo user$ docker run config-demo

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.2.4.RELEASE)

2020-02-27 09:58:45.004  INFO 6 --- [           main] c.z.c.ConfigurationDemoApplication       : Starting ConfigurationDemoApplication v0.0.1-SNAPSHOT on 9999dad12dac with PID 6 (/usr/src/myapp/configuration-demo-0.0.1-SNAPSHOT.jar started by root in /usr/src/myapp)
2020-02-27 09:58:45.014  INFO 6 --- [           main] c.z.c.ConfigurationDemoApplication       : No active profile set, falling back to default profiles: default
2020-02-27 09:58:46.425  INFO 6 --- [           main] c.z.c.ConfigurationDemoApplication       : Started ConfigurationDemoApplication in 2.564 seconds (JVM running for 3.881)
key1-value

Es wird nicht reflektiert. ..

Ich habe verschiedene Dinge ausprobiert.

Auch wenn Sie die Gegenmaßnahmen überprüfen

Es gibt verschiedene solche Dinge, aber ist es möglich, dies mit nur einer Datei zu tun? Ich hatte nicht viele Informationen. Das letzte Hot Reload besteht darin, einen Server einzurichten, um dies zu tun.

Fazit

** Nach / config kopieren! ** ** **

Ich habe es schon nach Versuch und Irrtum fett gemacht,

classes/config

Das ist nicht gut.

/config

Erstellen Sie eine neue und platzieren Sie Klassen / application.properties darin.

target 2020-02-27 19-21-35.png
sample.key1=modify

Starten Sie Docker (eine Neuerstellung ist erforderlich, da es sich um KOPIEREN handelt).

Otsuka:configuration-demo otsukatakuya$ docker run config-demo

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.2.4.RELEASE)

2020-02-27 10:54:32.393  INFO 6 --- [           main] c.z.c.ConfigurationDemoApplication       : Starting ConfigurationDemoApplication v0.0.1-SNAPSHOT on c43d6b28259a with PID 6 (/usr/src/myapp/configuration-demo-0.0.1-SNAPSHOT.jar started by root in /usr/src/myapp)
2020-02-27 10:54:32.403  INFO 6 --- [           main] c.z.c.ConfigurationDemoApplication       : No active profile set, falling back to default profiles: default
2020-02-27 10:54:33.804  INFO 6 --- [           main] c.z.c.ConfigurationDemoApplication       : Started ConfigurationDemoApplication in 2.474 seconds (JVM running for 3.59)
modify

Wo steht es geschrieben?

https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-external-config

Es wurde in der offiziellen Referenz von Spring Boot erwähnt.

SpringApplication loads properties from application.properties files in the following locations and adds them to the Spring Environment:

  1. A /config subdirectory of the current directory
  1. The current directory
  1. A classpath /config package
  1. The classpath root

The list is ordered by precedence (properties defined in locations higher in the list override those defined in lower locations).

Ich wollte 1 versuchen, aber ich konnte nicht zuerst 3 versuchen. .. Vielleicht ist der Klassenpfad im Glas enthalten und steht in Konflikt damit?

Einige Leute haben eine Möglichkeit vorgeschlagen, Ausschlüsse in pom.xml zu schreiben und sie nicht in den Build aufzunehmen, aber alles, was Sie tun müssen, ist, sie hinzuzufügen! Ich habe viel gelernt, weil nicht viele Artikel präzise geschrieben wurden.

Recommended Posts

So ändern Sie den Einstellungswert von application.properties beim Booten im Frühjahrsstart
Ändern Sie das Sitzungszeitlimit in Spring Boot
So fügen Sie in Spring Boot einen Klassenpfad hinzu
So binden Sie mit einer Eigenschaftendatei in Spring Boot
Spring Boot - So stellen Sie das Sitzungszeitlimit ein
So erstellen Sie ein Spring Boot-Projekt in IntelliJ
Verwendung von CommandLineRunner im Spring Batch von Spring Boot
So stellen Sie Spring Boot + PostgreSQL ein
Aufrufen und Verwenden der API in Java (Spring Boot)
Verwendung von ModelMapper (Spring Boot)
So steuern Sie Transaktionen in Spring Boot ohne Verwendung von @Transactional
So ändern Sie den App-Namen in Rails
Wie kann ich Spring Tool in Eclipse 4.6.3 einbinden?
So teilen Sie eine Spring Boot-Nachrichtendatei
So ändern Sie den Wert einer Variablen an einem Haltepunkt in IntelliJ
Verwendung von MyBatis2 (iBatis) mit Spring Boot 1.4 (Spring 4)
Verwendung des eingebauten h2db mit Federstiefel
So verkleinern Sie das Spring Boot Docker-Image
Verwendung von Spring Boot-Sitzungsattributen (@SessionAttributes)
So definieren Sie mehrere orm.xml in Spring4, JPA2.1
[Spring Boot] So verweisen Sie auf die Eigenschaftendatei
[Spring Boot] So rufen Sie Eigenschaften dynamisch aus einer in einer URL enthaltenen Zeichenfolge ab
So legen Sie Umgebungsvariablen in der Eigenschaftendatei der Spring-Boot-Anwendung fest
Einstellungen für die Verbindung zu MySQL mit Spring Boot + Spring JDBC
So stellen Sie die Anzeigezeit in Rails auf japanische Zeit ein
So stellen Sie Spring Boot Dependency Injection (DI) ein
So schreiben Sie einen Komponententest für Spring Boot 2
Ändern Sie Datum und Uhrzeit in Rails in japanische Notation
[Spring Boot] So erstellen Sie ein Projekt (für Anfänger)
So testen Sie den Bildschirm zum Hochladen von Dateien mit Spring + Selenium
Führen Sie swagger-ui in die in Spring Boot implementierte REST-API ein
Booten nach Umgebung mit Spring Boot of Maven
[Anfänger] Verwendung des Geräts Ändern Sie die Einstellungen ab Einführung
Verwendung des In-Memory-Job-Repositorys mit Spring Batch
So implementieren Sie den Authentifizierungsprozess durch Angabe von Benutzername und Kennwort in Spring Boot
Legen Sie den Kontextparameter in Spring Boot fest
Versuchen Sie Spring Boot von 0 bis 100.
So stellen Sie die Chronik ein, wenn sich die Zeit in CentOS7 verschiebt
[Spring Boot] Verschieben Sie die Validierung (@Validated / @Valid) jederzeit [BeanValidation]
So ändern Sie eine Zeichenfolge in einem Array in eine Zahl in Ruby
Spring Boot 2 Multiprojekt mit Gradle
Verwendung derselben Mapper-Klasse in mehreren Datenquellen mit Spring Boot + MyBatis
So erhalten Sie Werte in Echtzeit mit TextWatcher (Android)
Spring Boot Hot Swapping-Einstellungen
Einführung in Spring Boot ~ ~ DI ~
Einführung in Spring Boot ② ~ AOP ~
Wichtige Änderungen in Spring Boot 1.5
NoHttpResponseException in Spring Boot + WireMock
Einstellungen für die Spring Boot-Leistung
Einführung in Spring Boot Teil 1
Überwachen von Anwendungsinformationen in Echtzeit mit JConsole
So ändern Sie die Hintergrundfarbe der Navigationsleiste usw. in der Swift-Benutzeroberfläche
Lassen Sie uns herausfinden, wie Sie mit Request Body mit der REST-API von Spring Boot empfangen können
Verwenden Sie im Spring Boot @ControllerAdvice, @ExceptionHandler, HandlerExceptionResolver, um Ausnahmen abzufangen
[Sprint Boot] Verwendung der drei in org.springframework.jdbc.core.namedparam definierten Arten von SqlParameterSource
So erstellen Sie mit SPRING INITIALIZR einen Hinadan für ein Spring Boot-Projekt
Ändern Sie die Spring Boot REST API-Anforderung / Antwort von CamelCase in SankeCase
So erstellen Sie mit Spring Boot einen eigenen Controller, der / error entspricht
So legen Sie ein Profil mit annotationsbasierter Konfiguration im Spring-Framework fest und verwenden es
Was ich bei der Migration von der Spring Boot 1.4-Serie zur 2.0-Serie getan habe