[JAVA] Legen Sie das Spring-Profil fest, wenn Sie die bootRun-Task mit dem Spring Boot Gradle Plugin ausführen

Methode

Geben Sie in jvmArgs der BootRun-Taskeinstellung von build.gradle das Profil im Systemeigenschaftswert spring.profiles.active an.

build.gradle


//Fügen Sie Einstellungen für die bootRun-Task hinzu
bootRun {
  //Geben Sie das Fußprofil an
  jvmArgs = ['-Dspring.profiles.active=foobar']
}

Referenz:

Funktionsprüfung

Ich habe den Quellcode mit Spring Initializr generiert und nach Bedarf hinzugefügt / gelöscht / bearbeitet.

Diese Umgebung

Quellcodeliste

├── build.gradle
├── settings.gradle
└── src
    └── main
        ├── java
        │   └── com
        │       └── example
        │           └── demo
        │               └── DemoApplication.java
        └── resources
            ├── application-foobar.properties
            └── application.properties

build.gradle

Konfigurationsdatei für Gradle erstellen. Hinzufügen von Einstellungen für die bootRun-Aufgabe.

build.gradle


plugins {
  id 'org.springframework.boot' version '2.2.2.RELEASE'
  id 'io.spring.dependency-management' version '1.0.8.RELEASE'
  id 'java'
}

group = 'com.example'
version = '0.0.1'
sourceCompatibility = '11'

repositories {
  mavenCentral()
}

dependencies {
  implementation 'org.springframework.boot:spring-boot-starter-web'
  testImplementation('org.springframework.boot:spring-boot-starter-test') {
    exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
  }
}

test {
  useJUnitPlatform()
}

//Fügen Sie Einstellungen für die bootRun-Task hinzu
bootRun {
  //Geben Sie ein Profil an
  jvmArgs = ['-Dspring.profiles.active=foobar']
}

settings.gradle

Die von Spring Initializr generierte wird unverändert verwendet.

settings.gradle


rootProject.name = 'demo'

DemoApplication.java

Ein Prozess, der JSON zurückgibt, wenn auf die oberste Seite zugegriffen wird, wurde hinzugefügt.

package com.example.demo;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.core.env.Environment;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.HashMap;
import java.util.Map;

@SpringBootApplication
@RestController
public class DemoApplication {

  public static void main(String[] args) {
    SpringApplication.run(DemoApplication.class, args);
  }

  @Autowired
  private Environment env;

  //Gibt JSON beim Zugriff auf die Startseite zurück
  @RequestMapping("/")
  public ResponseEntity<Map<String, Object>> top() {

    Map<String, Object> body = new HashMap<>();

    //Anwendbares Profil
    body.put("profiles", env.getActiveProfiles());

    // application-*.Wert aus Eigenschaften erhalten
    body.put("my.sample", env.getProperty("my.sample"));
    body.put("my.message", env.getProperty("my.message"));

    return new ResponseEntity<>(body, HttpStatus.OK);
  }
}

application.properties

Die Standardeinstellungsdatei für Eigenschaften. Wenn Sie kein Profil angeben, können Sie die Werte in dieser Datei verwenden.

my.sample=This is a sample property.
my.message=This is a application.properties.

application-foobar.properties

Eigenschaftseinstellungsdatei bei Verwendung des Foobar-Profils. Bei Verwendung des foobar-Profils wird der Wert in application.properties mit dem Wert in dieser Datei überschrieben.

my.message=This is a application-foobar.properties.

Funktionsprüfung

Starten Sie Spring Boot mit dem Befehl gradle bootRun.

$ gradle bootRun

> Task :bootRun

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.2.2.RELEASE)

Wenn Sie mit Curl von einer anderen Konsole usw. aus zugreifen, wird JSON zurückgegeben.

Wenn die BootRun-Taskeinstellung von gradle.build nicht beschrieben wird, wird der folgende JSON zurückgegeben. Der Wert von application.properties wird ausgegeben.

$ curl http://localhost:8080/
{"my.sample":"This is a sample property.","profiles":[],"my.message":"This is a application.properties."}

Wenn jvmArgs = ['-Dspring.profiles.active = foobar'] in den BootRun-Taskeinstellungen von gradle.build beschrieben wird, wird der folgende JSON zurückgegeben. Der Wert von application-foobar.properties wird vorrangig vor dem Wert von application.properties ausgegeben.

$ curl http://localhost:8080/
{"my.sample":"This is a sample property.","profiles":["foobar"],"my.message":"This is a application-foobar.properties."}

Referenzmaterial

Recommended Posts

Legen Sie das Spring-Profil fest, wenn Sie die bootRun-Task mit dem Spring Boot Gradle Plugin ausführen
Setzen Sie Cookies mit Spring Boot
(IntelliJ + gradle) Hallo Welt mit Spring Boot
Erstellen Sie eine Website mit Spring Boot + Gradle (jdk1.8.x)
Führen Sie die Scala-Anwendung mit Spring Boot über Gradle aus
Erstellen Sie mit Gradle Spring Boot-Projekte nach Umgebung
Ich wollte Spring Boot in einem Multiprojekt gradle
Zeigen Sie die Gradle-Aufgabe im Spring Boot-Projekt an
[Hinweis] Festlegen der Datei bei Verwendung von Logback mit Spring Boot
Wechseln Sie die Umgebung mit Spring Boot application.properties und @ Profile-Annotation
[Java] [Spring Boot] Geben Sie das Laufzeitprofil an - Spring Boot beginnend mit NetBeans
Ein Memorandum beim Erstellen eines REST-Service mit Spring Boot
Mit Spring Boot herunterladen
Überprüfen Sie, wie Sie das Zeitlimit festlegen, wenn Sie eine Verbindung zu Spring + HikariCP + MySQL herstellen und SQL ausführen
Ich habe ein Plug-In erstellt, das Jextract mit Gradle-Aufgaben ausführt
Legen Sie den Kontextparameter in Spring Boot fest
Generieren Sie mit Spring Boot einen Barcode
Hallo Welt mit Spring Boot
Implementieren Sie GraphQL mit Spring Boot
Aufgabenplan für das Spring Boot Tutorial
Beginnen Sie mit Spring Boot
Hallo Welt mit Spring Boot!
Spring Boot 2 Multiprojekt mit Gradle
Führen Sie LIFF mit Spring Boot aus
SNS-Login mit Spring Boot
Datei-Upload mit Spring Boot
Spring Boot beginnt mit dem Kopieren
Spring Boot beginnend mit Docker
Hallo Welt mit Spring Boot
Verwenden Sie Spring JDBC mit Spring Boot
Modul mit Spring Boot hinzufügen
Erste Schritte mit Spring Boot
Erstellen Sie mit Spring Boot einen Mikrodienst
Mail mit Spring Boot verschicken
Verwenden Sie die Standardauthentifizierung mit Spring Boot
Memorandum beim Spring Boot 1.5.10 → Spring Boot 2.0.0
gRPC auf Spring Boot mit grpc-spring-boot-Starter
Erstellen Sie eine App mit Spring Boot 2
Hot Deploy mit Spring Boot-Entwicklung
Datenbankverknüpfung mit doma2 (Spring Boot)
So stellen Sie Spring Boot + PostgreSQL ein
Spring Boot Programmierung mit VS Code
Bis "Hallo Welt" mit Spring Boot
Erstellen Sie eine Anfrage-App mit Spring Boot
Erhalten Sie Validierungsergebnisse mit Spring Boot
(Intellij) Hallo Welt mit Spring Boot
Erstellen Sie eine App mit Spring Boot
Spring-Profilfunktion und Spring Boot application.properties
Google Cloud Platform mit Spring Boot 2.0.0
Implementieren Sie die Spring Boot-Anwendung in Gradle
Ich habe GraphQL mit Spring Boot ausprobiert
[Java] LINE-Integration mit Spring Boot
Beginnend mit Spring Boot 0. Verwenden Sie Spring CLI
Ich habe Flyway mit Spring Boot ausprobiert
Die Nachrichtenkooperation begann mit Spring Boot
Persönliches Memo Führen Sie das Webprojekt Spring Boot + Gradle mit Codenvy (Eclipse Che) aus.