[JAVA] Spring-Profilfunktion und Spring Boot application.properties

Federprofilfunktion

Ein Profil ist eine Gruppe von Bohnen in einem DI-Container. Sie können einen beliebigen Gruppennamen angeben.

Verwenden Sie die Annotation "@ Profile", um ein Profil für eine Bean anzugeben.

DevBean.java


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

ProductionBean.java


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

Beans ohne "@ Profile" gehören nicht zu einem bestimmten Profil (auch als Standardprofil bezeichnet). ** Beans ohne Profile sind zur Laufzeit immer aktiviert, unabhängig davon, welches Profil Sie angeben. ** ** **

DefaultBean.java


@Component
public class DefaultBean {
}

Angeben mehrerer Profile

Da das value -Element von @ Profile ein Array ist, können Sie mehrere Profile für eine Bean angeben. Wenn Sie mehr als ein Profil angeben, wird es aktiviert, wenn zur Laufzeit ein Profil angegeben wird (nicht alle Profile müssen zur Laufzeit angegeben werden).

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

Verwendung logischer Operatoren

Sie können auch ! (Negativ), & (und) und | (oder) verwenden.

Aktiviert für alles andere als profile1


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

Aktiviert, wenn zur Laufzeit sowohl Profil1 als auch Profil2 angegeben werden


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

Aktiviert, wenn zur Laufzeit Profil1 oder Profil2 angegeben ist


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

Wenn Sie eine Mischung aus "&" und "|" haben, müssen Sie immer die Klammern "()" verwenden. ❌ @Profile("profile1 | profile2 & profile3")@Profile("profile1 | (profile2 & profile3)")

Angeben eines Profils zur Laufzeit

Es gibt verschiedene Möglichkeiten, um "Ich werde dieses Profil dieses Mal verwenden!" Zur Laufzeit anzugeben. Die folgenden drei werden häufig verwendet. Je höher die Priorität, desto höher die Priorität.

  1. Fügen Sie der JUnit-Testklasse "@ActiveProfiles (" Profilname ")" hinzu
  1. Fügen Sie dem Befehl "java" "-Dspring.profiles.active = profile name" hinzu
  1. Geben Sie den Profilnamen in der Umgebungsvariablen "SPRING_PROFILES_ACTIVE" an

Wie oben erwähnt, ist die erste Einschränkung, dass ** unabhängig davon, welches Profil Sie zur Laufzeit angeben, Beans ohne Profile immer verwendet werden. ** ** **

Spring Boot application.properties

Bei Verwendung von Spring Boot kann das Profil auch in der Einstellungsdatei application.properties verwendet werden. application.properties hat kein Profil, und application-profile name.properties ist eine Einstellung, die nur verwendet wird, wenn dieses Profil angegeben wird.

Dies bedeutet, dass die Einstellungen, die Sie in ** application.properties schreiben, unabhängig von dem von Ihnen angegebenen Profil verwendet werden. ** ** **

Wenn Sie ein Profil angeben und in application.properties und application-profile name.properties Eigenschaften mit demselben Namen vorhanden sind, erhält der letztere Wert die Priorität (= überschreiben) **.

application.properties


sample.value1=Default1
sample.value2=Default2

application-dev.properties


#Dieser Wert wird bei der Angabe des Entwicklungsprofils verwendet
sample.value1=Dev1

Laufzeitprofilspezifikation bei Verwendung von Spring Boot

Wenn Sie Spring Boot verwenden, können Sie es zusätzlich zu der obigen Spezifikationsmethode mit einem Befehlszeilenargument angeben.

Profilspezifikation mit Befehlszeilenargumenten


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

Für IntelliJ IDEA (nur Ultimate Edition) kann es in den Ausführungseinstellungen angegeben werden (zur Laufzeit mit -D hinzugefügt).

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

Beispielcode

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

Referenzmaterial

Recommended Posts

Spring-Profilfunktion und Spring Boot application.properties
HTTPS mit Spring Boot und Let's Encrypt
Implementieren Sie die Paging-Funktion mit Spring Boot + Thymeleaf
Fügen Sie Frühlingsstiefel und Gradle zur Sonnenfinsternis hinzu
Fordern Sie Spring Boot heraus
Spring Boot Form
Spring Boot Denken Sie daran
gae + frühlingsstiefel
Informationen zum Entwerfen einer Spring Boot- und Unit-Test-Umgebung
Spring Boot Whitelabel-Fehlerseite und JSON-Antwort
Anforderungs- und Antwortprotokolle mit Spring Boot ausgeben
Verschiedene Korrespondenztabellen zwischen Spring Framework und Spring Boot
Versuchen Sie, die Anmeldefunktion mit Spring Boot zu implementieren
[Einführung in Spring Boot] Authentifizierungsfunktion mit Spring Security
Pläne zur Unterstützung von JDK 11 für Eclipse und Spring Boot
Testen von JPA-Entitäten und -Repositorys mit Spring Boot @DataJpaTest
In die Spring Boot-Anwendung integrierte Integration von Tomcat, Apache und WebSocket
Versuchen Sie es mit einem DI-Container mit Laravel und Spring Boot
SPRING BOOT Lernaufzeichnung 01
Frühlingsstiefel + Heroku Postgres
[Java] [Spring Boot] Geben Sie das Laufzeitprofil an - Spring Boot beginnend mit NetBeans
Schreiben von Frühlingsstiefel-Memos (1)
Verwendungshinweis zu Spring Security: Zusammenarbeit mit Spring MVC und Boot
Erster Frühlingsstiefel (DI)
SPRING BOOT Lernprotokoll 02
Spring Boot2 Spickzettel
Spring Boot mit Spring Security Filter-Einstellungen und Suchtpunkten
Spring Boot-Ausnahmebehandlung
Spring Boot Entwicklung-Entwicklungsumgebung-
Spring Boot-Lernverfahren
Spring Boot lernen [Anfang]
Schreiben von Spring Boot-Memos (2)
Spring Boot 2.2 Dokumentzusammenfassung
[Spring Boot] DataSourceProperties $ DataSourceBeanCreationException
Spring Boot 2.3 Verfügbarkeit von Anwendungen
Spring Boot Tutorials Themen
Versuch, SSR Vue.js mit Spring Boot und GraalJS zu verwenden
Verbinden Sie Spring Boot und Angular typsicher mit OpenAPI Generator
Hallo Welt Vergleich zwischen Spark Framework und Spring Boot
Mit Spring Boot herunterladen
Hash beim Spring-Boot das Passwort und verwenden Sie die Mitgliederregistrierung und die Spring-Sicherheit, um die Anmeldefunktion zu implementieren.
Über die Funktion von Spring Boot aufgrund unterschiedlicher Versionen
Implementieren Sie die REST-API mit Spring Boot und JPA (Application Layer).
Implementieren Sie die REST-API mit Spring Boot und JPA (Infrastructure Layer).
Bis INSERT und SELECT für Postgres mit Spring Boot und Thymianblatt
Aufrufen und Verwenden der API in Java (Spring Boot)
Abrufen von Fehlerinformationen mithilfe von DefaultErrorAttributes und ErrorAttributeOptions in Spring Boot 2.3
Stellen Sie mit spring boot + spring jpa eine Verbindung zur Datenbank her und führen Sie die CRUD-Operation durch
Implementieren Sie die REST-API mit Spring Boot und JPA (Domain Layer Edition).
Domänengesteuerte Entwicklung mit Java und Spring Boot-Layer und Modulabteilung
8 Dinge, die mit Spring Boot und JPA in die DB eingefügt werden müssen
Verschiedene Switching Application.Eigenschaften für jede Umgebung, wenn Spring Boot gestartet wird
[Spring Boot] Umgebungskonstruktion (macOS)
Legen Sie den Kontextparameter in Spring Boot fest
Versuchen Sie Spring Boot von 0 bis 100.
Generieren Sie mit Spring Boot einen Barcode
Federvalidierung und Fehlercode
Hallo Welt mit Spring Boot
Implementieren Sie GraphQL mit Spring Boot