2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Tout d'abord, un projet Java nécessite différentes configurations d'environnement lors du packaging, les configurations correspondantes sont automatiquement utilisées. Alors, comment y parvenir ?
Créez ou ajoutez un fichier application.yml dans le répertoire src/main/resources de votre projet Spring Boot. C'est ici que Spring Boot recherche les fichiers de configuration par défaut. Ce fichier peut ajouter des configurations courantes.
Ensuite, vous pouvez également créer des fichiers tels que application-test.yml, application-prod.yml, etc. dans le même répertoire, Spring Boot reconnaîtra automatiquement ces fichiers de configuration spécifiques au profil. Vous pouvez définir des paramètres pour différents environnements dans ces fichiers, tels que des adresses de base de données, des adresses de cache Redis, etc.
Autrement dit, dans le répertoire src/main/resources, il peut y avoir plusieurs fichiers comme celui-ci :
application.yml
application-prod.yml
application-test.yml
Ensuite, vous pouvez utiliser application-test.yml et application-prod.yml pour déclarer deux variables avec la même configuration mais des valeurs différentes.Par exemple
application-test.yml:
mysql:
url: https://xx.test.com/mysql
application-prod.yml:
mysql:
url: https://xx.online.com/mysql
En code Java, vous pouvez utiliser cette URL de manière dynamique :
@Value("${mysql.url}")
protected String mysqlUrl;
Parfait.
Alors, comment utiliser automatiquement le fichier.yml spécifique au profil correspondant lorsque le système est en cours d'exécution ?Veuillez voir ci-dessous
Voyons comment les variables d'environnement sont transmises au projet couche par couche depuis le réseau externe.
Tout d’abord, un projet Java est généralement empaqueté par Docker. Alors, commençons par Docker :
docker build -f assistant-web-api/qke/Dockerfile -t docker-registry.qiyi.virtual/mbd-ai/assistant-web-api-test:$tag . --build-arg dc_env=test
Mots clés,construire-arg , définissez un paramètre, dc_env=test
ARG dc_env
...
RUN mvn -T 8 -DdisableRpm=true -pl '!assistant-web-manager' clean package -Dmaven.test.skip=true -P${dc_env}
Notez que -P signifie définir le profil
La commande mvn de l'étape précédente a ajouté -P. Où est-elle utilisée ? Bien sûr, c'est dans le fichier de configuration de Marven, qui est pom.xml.
<profiles>
<profile>
<id>test</id>
<properties>
<profile.active>test</profile.active>
<log.env>test</log.env>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<profile.active>prod</profile.active>
<log.env>prod</log.env>
</properties>
</profile>
</profiles>
Ci-dessus, 2 variables d'environnement sont ajoutées.Pour chaque variable, des propriétés sont définies, c'est-à-direprofil.actif
Où peut-on utiliser cette valeur ?
Utilisez-le dans le fichier application.yml principal !
server:
profiles:
active: @profile.active@
Définissez le profil à utiliser en fonction de la valeur de la variable profile.active à l'étape précédente.
Depuis lors, les variables définies à partir du package docker ont été transmises au fichier yml principal. Dans ce fichier, quelle que soit la valeur de server.profiles.active, quelle configuration de sous-yml sera utilisée. Par exemple, s'il s'agit de test, la configuration de application-test.yml sera chargée ! ! !
Tout d’abord, Marven se synchronise en premier. Après la synchronisation, vérifiez un environnement.
Ensuite, compilez et emballez localement, et spécifiez les variables d'environnement via -P :
Enfin, pour exécuter, cliquez sur le coin supérieur droit de l'image ci-dessous. Une fenêtre contextuelle Modifier la configuration apparaîtra. Dans le profil actif, remplissez les variables d'environnement correspondantes, telles que test.
Enfin, vous pouvez cliquer sur Exécuter !