L'influence de la nouvelle Corona commence progressivement à apparaître sur le lieu de travail, et je suis ravi si j'arrête de travailler.
Pendant ce temps, j'en étais accro pour la première fois depuis longtemps, alors j'ai décidé de l'enregistrer. De plus, si vous pouvez le comprendre, c'est une histoire très simple et elle est assez cabossée. Il est peut-être trop rudimentaire pour les passionnés de Java de publier sur le Web. ..
8h pour une chose aussi simple.
https://github.com/t-o-z/configuration-demo
Mettre en place selon Readme,
docker run config-demo
Ensuite, il est inclus dans application.properties
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: 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
Est affiché.
Appliquer application.properties sous les classes
sample.key1=key1-value1
Même si vous le réécrivez et l'exécutez à nouveau
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
Cela ne sera pas reflété. ..
J'ai essayé diverses choses.
Même si vous vérifiez les contre-mesures
Il y a différentes choses comme ça, mais est-il possible de le faire avec un seul fichier? Je n'avais pas beaucoup d'informations. Le dernier Hot Reload consiste à configurer un serveur uniquement pour ce faire.
** Copier dans / config! ** **
Je l'ai déjà rendu audacieux après essais et erreurs,
classes/config
Ce n'est pas bon.
/config
Créez-en un nouveau et placez-y classes / application.properties.
sample.key1=modify
Et démarrez Docker (la reconstruction est nécessaire car c'est COPY).
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
https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-external-config
Il a été mentionné dans la référence officielle de Spring boot.
SpringApplication loads properties from application.properties files in the following locations and adds them to the Spring Environment:
- A /config subdirectory of the current directory
- The current directory
- A classpath /config package
- The classpath root
The list is ordered by precedence (properties defined in locations higher in the list override those defined in lower locations).
J'avais l'intention d'essayer 1, mais je n'ai pas pu essayer 3 en premier. .. Peut-être que le chemin de classe est inclus dans le fichier jar et sera en conflit avec lui?
Certaines personnes ont suggéré un moyen d'écrire des exclusions dans pom.xml et de ne pas les inclure dans la construction, mais tout ce que vous avez à faire est de les ajouter! J'ai beaucoup appris car il n'y avait pas beaucoup d'articles écrits de manière concise.
Recommended Posts