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 en Tomcat intégré. J'utilise les mailles et exécute la main à partir des mailles mêmes.
Dans le cas ci-dessus, env-value aura les valeurs suivantes: local/devl/test/prod
Où définir le fichier env-value? Pour les locaux, je peux le définir comme argument JVM par le biais de sts
Qui lit le fichier application.properties dans l’application Spring Boot.
Comment charger le fichier de propriétés spécifique à l'environnement? Par exemple, si je définis l'ID de la base de données, le fichier pwd, le schéma, etc. dans un fichier de propriétés spécifique à l'environnement, la source de données sera-t-elle en mesure de comprendre les propriétés qu'il contient?
Puis-je utiliser les fichiers application.properties et application-local.properties en même temps?
Spring Boot déjà supporte pour profil propriétés.
Ajoutez simplement un fichier application-[profile].properties
et spécifiez les profils à utiliser à l'aide de la propriété spring.profiles.active
.
-Dspring.profiles.active=local
Ceci chargera le application.properties
et le application-local.properties
avec les dernières propriétés écrasantes du premier.
Oui, vous pouvez. Puisque vous utilisez spring, consultez l'annotation @PropertySource.
Annotez votre configuration avec
@PropertySource("application-${spring.profiles.active}.properties")
Vous pouvez l'appeler comme bon vous semble et ajouter plusieurs fichiers de propriétés inn si vous le souhaitez. Peut-être agréable si vous avez plus d'ensembles et/ou de valeurs par défaut qui appartiennent à tous les environnements (vous pouvez aussi écrire 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, etc.
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
ensuite, Spring Boot démarrera notre application comme nous le souhaitons.