Réglage de Printemps Profil variable
J'ai deux Printemps profils: dev
et test
. Je veux mettre le profil actif dans l'environnement du serveur, je ne veux pas dans mon code, de sorte que partout où j'déployer mon application le profil est chargé sur la base du profil dans le serveur.
Comment puis-je le faire?
Vous devez vous connecter pour publier un commentaire.
Vous pouvez simplement définir un système de propriété sur le serveur comme suit...
Edit: à l'ajouter À tomcat dans eclipse, sélectionnez
Run -> Run Configurations
et choisissez votre Tomcat configuration d'exécution. Cliquez sur leArguments
onglet et ajoutez -Dspring.les profils.active=test à la fin deVM arguments
. Une autre façon serait d'ajouter la propriété à votre catalina.les propriétés de votreServers
projet, mais si vous ajoutez à cela il y omettre la-DEdit: Pour une utilisation avec Printemps de Démarrage, vous avez un choix supplémentaire. Vous pouvez passer à la propriété, comme le programme d'argument si vous la faire précéder de la propriété avec deux tirets.
Voici deux exemples à l'aide d'un Ressort de Démarrage fichier jar exécutable...
Système De La Propriété
Programme D'Argument
--spring.profiles.active=test
travaillé, mais non l'-Dspring...--spring.profiles.active=test
est un Ressort de Démarrage paradigme qui n'existe pas en 2013, lorsque j'ai écrit cette réponse. Si vous choisissez de l'utiliser, il doit être utilisé comme un programme de l'argument, qui vient après la classe ou un bocal nom. Le-Dspring.profiles.active=test
approche, qui utilise les propriétés du système, fonctionne toujours, mais il doit venir devant la classe ou un bocal nom. Je vais essayer de mettre à jour cette réponse afin de mieux refléter l'approche du printemps.-Dspring.profiles.active=dev
fonctionne comme argument jvm, pas-DSPRING_PROFILES_ACTIVE=dev
. (utile lors d'un déploiement à l'aide d'amazon elastic beanstalk)Il y a au moins deux façons de le faire:
la définition de contexte param dans web.xml – que les pauses "un paquet pour tous les environnements" instruction. Je ne le recommande pas
la définition du système de la propriété
-Dspring.profiles.active=your-active-profile
Je crois que la définition du système de la propriété est une bien meilleure approche. Alors, comment définir le système de la propriété pour Tomcat? Sur internet j'ai pu trouver beaucoup de conseils comme "modifier catalina.sh" parce que vous ne trouverez pas de fichier de configuration pour faire des trucs comme ça. La modification de catalina.sh est un sale désuète solution. Il y a une meilleure façon de le faire.
Juste de créer le fichier setenv.sh dans le répertoire bin de Tomcat avec le contenu:
et il sera chargé automatiquement lors de l'exécution de catalina.sh démarrer ou faire fonctionner.
Voici un blog décrivant la solution ci-dessus. La section commentaires est intéressant car il parle plus de détails.
Pour Eclipse, réglage
-Dspring.profiles.active
variable dans la VM arguments ferait l'affaire.Aller à
Et ajouter votre
-Dspring.profiles.active=dev
dans le VM argumentscomme Variable d'environnement Système:
Windows:
Démarrer -> tapez "envi", sélectionnez les variables d'environnement et d'ajouter une nouvelle:
(ou quel que soit le vôtre est)Name: spring_profiles_active
Value: dev
Linux:
ajoutez la ligne suivante à /etc/environnement sous CHEMIN d'accès:
spring_profiles_active=prod
(ou quel que soit le profil est)puis aussi
export spring_profiles_active=prod
donc, vous l'avez dans le runtime maintenant.Pour Tomcat 8:
Linux :
Créer setenv.sh et le mettre à jour avec les éléments suivants:
exportation SPRING_PROFILES_ACTIVE=dev
Windows:
Créer setenv.chauve-souris et de la mettre à jour suivantes:
ensemble SPRING_PROFILES_ACTIVE=dev