Généralement, la configuration autour de application.properties de Spring Boot est la suivante.
Avec cette configuration, essayez de changer application.properties pour chaque environnement au démarrage de Spring Boot. Puisqu'il existe plusieurs méthodes de réglage, quatre sont présentées ici.
Il existe les deux méthodes suivantes pour définir l'argument de démarrage.
java -jar spring-boot-application-properties-sample-1.0.0.jar --spring.profiles.active=dev1
java -jar -Dspring.profiles.active=dev1 spring-boot-application-properties-sample-1.0.0.jar
cependant, https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html Comme vous pouvez le voir, la priorité est plus élevée pour les arguments de ligne de commande, donc si vous commencez avec les deux paramètres comme indiqué ci-dessous,
$ java -jar -Dspring.profiles.active=dev1 spring-boot-application-properties-sample.jar --spring.profiles.active=dev2
Propriétés du système Java (System.getProperties ()) - Dspring.profiles.active = dev1 ne pas, Arguments de ligne de commande --spring.profiles.active = dev2
Notez que c'est adopté (écrasé).
Spring Boot charge la variable d'environnement "SPRING_PROFILES_ACTIVE" au démarrage et la définit comme profil. Par conséquent, si vous définissez à l'avance "SPRING_PROFILES_ACTIVE" dans la variable d'environnement OS, le profil qui y est défini sera adopté.
Paramètres Windows.
Paramètres Linux.
.
export SPRING_PROFILES_ACTIVE=dev1
Avec la définition ci-dessus, le profil dev1 est chargé au démarrage de Spring Boot et "application-dev1.properties" est adopté. Ce qui suit est la sortie de la console à ce moment-là. En bas, "Les profils suivants sont actifs: dev1" est affiché, et vous pouvez voir que dev1 est actif.
console(Extrait).log
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v1.3.0.RELEASE)
2017-08-20 20:27:41.807 INFO 7080 --- [ main] com.example.App : Starting App on N-PC with PID 7080 (C:\Development\sts-bundle\workspace\spring-boot-application-properties-sample\target\classes started by N in C:\Development\sts-bundle\workspace\spring-boot-application-properties-sample)
2017-08-20 20:27:41.807 INFO 7080 --- [ main] com.example.App : The following profiles are active: dev1
Dans le cas où l'application créée par Spring Boot est définie sur WAR et déployée sur un autre serveur AP pour fonctionner, JNDI du serveur AP le définira comme profil. Voici un exemple de configuration lors de l'utilisation de Tomcat.
context.xml
<?xml version="1.0" encoding="utf-8"?>
<Context>
<Environment
type="java.lang.String"
name="spring.profiles.active"
value="dev2"/>
</Context>
Avec la définition ci-dessus, un profil appelé dev2 est chargé au démarrage de Tomcat et "application-dev2.properties" est adopté. Ce qui suit est la sortie de la console à ce moment-là. En bas, "Les profils suivants sont actifs: dev2" est affiché et vous pouvez voir que dev2 est actif.
Pour Tomcat, startup.bat (sh), catalina.bat (sh), etc.
startup.bat
set "SPRING_PROFILES_ACTIVE=dev2"
startup.sh
export SPRING_PROFILES_ACTIVE=dev2
Il est également possible de spécifier un profil dans la variable d'environnement "SPRING_PROFILES_ACTIVE" comme dans. Dans ce cas, dans context.xml,
context.xml
<?xml version="1.0" encoding="utf-8"?>
<Context>
<Environment
type="java.lang.String"
name="spring.profiles.active"
value="dev3"/>
</Context>
S'il est défini comme, ce profil (dev3 défini dans context.xml) est prioritaire.
c'est tout.
Recommended Posts