[JAVA] Fonction de profil Spring et application Spring Boot.

Fonction de profil de ressort

Un profil est un groupe de beans dans un conteneur DI. Vous pouvez spécifier n'importe quel nom de groupe.

Pour spécifier un profil pour un bean, utilisez l'annotation @ Profile.

DevBean.java


@Profile("dev")
@Component
public class DevBean {
}

ProductionBean.java


@Profile("production")
@Component
public class ProductionBean {
}

Les beans sans «@ Profile» n'appartiennent pas à un profil particulier (également appelé profil par défaut). ** Les beans sans profil sont toujours activés au moment de l'exécution, quel que soit le profil que vous spécifiez. ** **

DefaultBean.java


@Component
public class DefaultBean {
}

Spécification de plusieurs profils

Puisque l'élément value de @ Profile est un tableau, vous pouvez spécifier plusieurs profils pour un bean. Si vous en spécifiez plusieurs, il sera activé si un profil est spécifié au moment de l'exécution (tous les profils n'ont pas besoin d'être spécifiés au moment de l'exécution).

@Profile({"profile1", "profile2"})
@Component
public class FooBean {
}

Utilisation d'opérateurs logiques

Vous pouvez également utiliser ! (Négatif), & (et) et | (ou).

Activé pour tout autre chose que profile1


@Profile("!profile1")
@Component
public class FooBean {
}

Activé lorsque profile1 et profile2 sont spécifiés au moment de l'exécution


@Profile("profile1 & profile2")
@Component
public class FooBean {
}

Activé si profile1 ou profile2 est spécifié au moment de l'exécution


@Profile("profile1 | profile2")
@Component
public class FooBean {
}

Si vous avez un mélange de «&» et «|», vous devez toujours utiliser les parenthèses «()». ❌ @Profile("profile1 | profile2 & profile3")@Profile("profile1 | (profile2 & profile3)")

Spécification d'un profil lors de l'exécution

Il existe différentes manières de spécifier «J'utiliserai ce profil cette fois!» Au moment de l'exécution. Les trois suivants sont souvent utilisés. Plus la priorité est élevée, plus la priorité est élevée.

  1. Ajoutez @ActiveProfiles (" nom de profil ") à la classe de test JUnit --Lorsque plusieurs spécifications sont spécifiées, spécifiez un tableau @ActiveProfiles ({" profile1 "," profile2 "})
  2. Ajoutez -Dspring.profiles.active = nom du profil à la commande java --Séparer par des virgules lorsque plusieurs sont spécifiés -Dspring.profiles.active = profile1, profile2
  3. Spécifiez le nom du profil dans la variable d'environnement SPRING_PROFILES_ACTIVE --Séparer par des virgules lorsque plusieurs sont spécifiés SPRING_PROFILES_ACTIVE = profile1, profile2

Comme mentionné ci-dessus, la première mise en garde est que ** quel que soit le profil que vous spécifiez au moment de l'exécution, les beans sans profil seront toujours utilisés. ** **

Spring Boot application.properties

Lors de l'utilisation de Spring Boot, le profil peut également être utilisé dans le fichier de paramètres application.properties. application.properties n'a pas de profil et nom du profil d'application.properties est un paramètre qui n'est utilisé que lorsque ce profil est spécifié.

Cela signifie que les paramètres que vous écrivez dans ** application.properties seront utilisés quel que soit le profil que vous spécifiez. ** **

Si vous spécifiez un profil et que des propriétés portent le même nom dans application.properties et nom du profil d'application.properties, cette dernière valeur aura la priorité (= écraser) **.

application.properties


sample.value1=Default1
sample.value2=Default2

application-dev.properties


#Cette valeur est utilisée lors de la spécification du profil de développement
sample.value1=Dev1

Spécification du profil d'exécution lors de l'utilisation de Spring Boot

Si vous utilisez Spring Boot, vous pouvez le spécifier avec un argument de ligne de commande en plus de la méthode de spécification ci-dessus.

Spécification de profil avec des arguments de ligne de commande


$ java -jar target/spring-boot-profiles-sample-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev

Pour IntelliJ IDEA (Ultimate Edition uniquement), il peut être spécifié dans les paramètres d'exécution (ajouté avec -D au moment de l'exécution).

スクリーンショット 2019-12-29 10.50.03.png

Exemple de code

https://github.com/MasatoshiTada/spring-profile-sample

Matériel de référence

Recommended Posts

Fonction de profil Spring et application Spring Boot.
HTTPS avec Spring Boot et Let's Encrypt
Implémenter la fonction de pagination avec Spring Boot + Thymeleaf
Ajoutez une botte de printemps et un dégradé à éclipse
Défi Spring Boot
Forme de botte de printemps
Spring Boot Rappelez-vous
gae + botte à ressort
À propos de la conception de Spring Boot et de l'environnement de test unitaire
Page d'erreur Spring Boot Whitelabel et réponse JSON
Sortie des journaux de demande et de réponse avec Spring Boot
Divers tableau de correspondance de Spring Framework et Spring Boot
Essayez d'implémenter la fonction de connexion avec Spring Boot
[Introduction à Spring Boot] Fonction d'authentification avec Spring Security
Plans pour prendre en charge JDK 11 pour Eclipse et Spring Boot
Test des entités et référentiels JPA à l'aide de Spring Boot @DataJpaTest
Intégration Tomcat, Apache et WebSocket intégrée à l'application Spring Boot
Essayez d'utiliser un conteneur DI avec Laravel et Spring Boot
Fiche d'apprentissage SPRING BOOT 01
Botte de printemps + Heroku Postgres
[Java] [Spring Boot] Spécifier le profil d'exécution --Spring Boot à partir de NetBeans
Rédaction de mémo de démarrage de printemps (1)
Mémo d'utilisation de Spring Security: coopération avec Spring MVC et Boot
Première botte à ressort (DI)
Fiche d'apprentissage SPRING BOOT 02
Aide-mémoire Spring Boot2
Spring Boot avec les paramètres du filtre de sécurité Spring et les points addictifs
Gestion des exceptions Spring Boot
Environnement de développement-développement Spring Boot-
Procédure d'apprentissage Spring Boot
Apprentissage de Spring Boot [Début]
Rédaction de mémos de démarrage de printemps (2)
Résumé du document Spring Boot 2.2
[Spring Boot] DataSourceProperties $ DataSourceBeanCreationException
Disponibilité de l'application Spring Boot 2.3
Tutoriels Spring Boot Sujets
Tentative de SSR Vue.js avec Spring Boot et GraalJS
Connectez Spring Boot et Angular en toute sécurité avec OpenAPI Generator
Comparaison Hello World entre Spark Framework et Spring Boot
Télécharger avec Spring Boot
Avec Spring Boot, hachez le mot de passe et utilisez l'enregistrement des membres et la sécurité Spring pour implémenter la fonction de connexion.
À propos de la fonction de Spring Boot en raison de différentes versions
Implémenter l'API REST avec Spring Boot et JPA (Application Layer)
Implémenter l'API REST avec Spring Boot et JPA (couche d'infrastructure)
Jusqu'à INSERT et SELECT sur Postgres avec botte de printemps et feuille de thym
Comment appeler et utiliser l'API en Java (Spring Boot)
Obtenez des informations d'erreur à l'aide de DefaultErrorAttributes et ErrorAttributeOptions dans Spring Boot 2.3
Connectez-vous à la base de données avec spring boot + spring jpa et effectuez l'opération CRUD
Implémenter l'API REST avec Spring Boot et JPA (Domain Layer Edition)
Développement piloté par domaine avec Java et Spring Boot-Layer et division de modules
8 choses à insérer dans DB en utilisant Spring Boot et JPA
Diverses applications de commutation.properties pour chaque environnement au démarrage de Spring Boot
[Spring Boot] Construction de l'environnement (macOS)
Définir le paramètre contextuel dans Spring Boot
Essayez Spring Boot de 0 à 100.
Générer un code à barres avec Spring Boot
Validation du ressort et code d'erreur
Hello World avec Spring Boot
Implémenter GraphQL avec Spring Boot