Dans mon application Spring Boot, je souhaite créer un fichier de propriétés spécifique à l’environnement. Le type de packaging de mon application en guerre et je l’exécute dans tomcat intégré. J’utilise sts et exécute le principal à partir de sts lui-même.
Dans le cas ci-dessus, la valeur env aura des valeurs comme local / devl / test / prod
Où définir le fichier env-value? Pour local, je peux le définir comme argument jvm via sts
Qui lit l’application.properties dans l’application Spring Boot.
Comment charger le fichier de propriétés spécifique à l’environnement? Par exemple, si j’ai défini la firebase database uid, pwd, schema etc dans un fichier de propriétés spécifique à l’environnement, dans ce cas la source de données pourra-t-elle comprendre les propriétés qu’elle contient?
Puis-je utiliser le fichier application.properties et application-local.properties en même temps?
Spring Boot prend déjà en charge les propriétés basées sur les profils .
Ajoutez simplement un fichier application-[profile].properties
et spécifiez les profils à utiliser avec la propriété spring.profiles.active
.
-Dspring.profiles.active=local
Cela chargera les application.properties
et application-local.properties
avec ces dernières propriétés de substitution du premier.
Oui, vous pouvez. Étant donné que vous utilisez le spring, consultez l’anotation @PropertySource.
Anotate ta configuration avec
@PropertySource("application-${spring.profiles.active}.properties")
Vous pouvez l’appeler comme vous voulez et append plusieurs fichiers de propriétés si vous le souhaitez. Cela peut être intéressant si vous avez plus d’ensembles et / ou de valeurs par défaut qui appartiennent à tous les environnements (peuvent également être écrits avec @PropertySource {…, …, …}).
@PropertySources( @PropertySource("application-${spring.profiles.active}.properties"), @PropertySource("my-special-${spring.profiles.active}.properties"), @PropertySource("overridden.properties"))
Ensuite, vous pouvez démarrer l’application avec l’environnement
-Dspring.active.profiles=test
Dans cet exemple, name sera remplacé par application-test-properties et ainsi de suite.
on peut faire comme ça:
dans application.yml :
spring: profiles: active: test //modify here to switch between environments include: application-${spring.profiles.active}.yml
dans application-test.yml :
server: port: 5000
et dans application-local.yml :
server: address: 0.0.0.0 port: 8080
alors le démarrage du spring va démarrer notre application comme nous le souhaitons.