Argumenti naredbenog retka u proljetnom pokretanju

1. Pregled

U ovom brzom vodiču razgovarat ćemo o tome kako proslijediti argumente naredbenog retka u aplikaciju Spring Boot.

Argumente naredbenog retka možemo koristiti za konfiguriranje aplikacije, nadjačavanje svojstava aplikacije ili prosljeđivanje prilagođenih argumenata.

2. Argumenti zapovjednog retka Maven

Prvo, pogledajmo kako možemo prosljeđivati ​​argumente tijekom pokretanja naše aplikacije pomoću dodatka Maven.

Kasnije ćemo vidjeti kako pristupiti argumentima u našem kodu.

2.1. Proljetni čizma 1.x

Za Spring Boot 1.x možemo argumente proslijediti našoj aplikaciji pomoću -Drun.argumenti:

mvn spring-boot: run -Drun.arguments = - customArgument = custom

U našu aplikaciju također možemo proslijediti više parametara:

mvn spring-boot: run -Drun.arguments = - spring.main.banner-mode = off, - customArgument = custom

Imajte na umu da:

  • Argumente treba razdvajati zarezom
  • Svakom argumentu treba dodati prefiks -
  • Također možemo proslijediti svojstva konfiguracije, poput spring.main.banner-mode prikazan u gornjem primjeru

2.2. Proljetni čizma 2.x

Za Spring Boot 2.x možemo proslijediti argumente pomoću -Dspring-boot.run.argumenti:

mvn spring-boot: run -Dspring-boot.run.arguments = - spring.main.banner-mode = off, - customArgument = custom

3. Argumenti naredbenog retka Gradle

Dalje, otkrijmo kako prosljeđivati ​​argumente tijekom izvođenja naše aplikacije pomoću dodatka Gradle.

Morat ćemo konfigurirati naš bootRun zadatak u graditi.gradle datoteka:

bootRun {if (project.hasProperty ('args')) {args project.args.split (',')}}

Sada možemo proslijediti argumente naredbenog retka kako slijedi:

./gradlew bootRun -Pargs = - spring.main.banner-mode = off, - customArgument = custom

4. Nadjačavanje svojstava sustava

Osim prosljeđivanja prilagođenih argumenata, također možemo nadjačati svojstva sustava.

Na primjer, ovdje je naš primjena.svojstva datoteka:

server.port = 8081 spring.application.name = SampleApp

Da nadjača poslužitelj.port vrijednost, novu vrijednost moramo proslijediti na sljedeći način (za Spring Boot 1.x):

mvn spring-boot: run -Drun.arguments = - server.port = 8085

Slično za Spring Boot 2.x:

mvn spring-boot: run -Dspring-boot.run.arguments = - server.port = 8085

Imajte na umu da:

  • Spring Boot pretvara argumente naredbenog retka u svojstva i dodaje ih kao varijable okruženja
  • Možemo se poslužiti kratkim argumentima naredbenog retka –Port = 8085 umjesto –Server.port = 8085 pomoću rezerviranog mjesta u našem primjena.svojstva:
    server.port = $ {port: 8080}
  • Argumenti naredbenog retka imaju prednost primjena.svojstva vrijednosti

Ako je potrebno, možemo zaustaviti našu aplikaciju da pretvara argumente naredbenog retka u svojstva:

@SpringBootApplication aplikacija javne klase proširuje SpringBootServletInitializer {javna statička void glavna (String [] args) {SpringApplication aplikacija = nova SpringApplication (Application.class); application.setAddCommandLineProperties (netačno); aplikacija.run (args); }}

5. Pristup argumentima naredbenog retka

Pogledajmo kako možemo pristupiti argumentima naredbenog retka iz naše aplikacije glavni() metoda:

@SpringBootApplication javna klasa Aplikacija proširuje SpringBootServletInitializer {public static void main (String [] args) {for (String arg: args) {System.out.println (arg); } SpringApplication.run (Application.class, args); }}

Ovo će ispisati argumente koje smo našoj aplikaciji proslijedili iz naredbenog retka, ali bismo ih mogli koristiti i kasnije u našoj aplikaciji.

6. Prolazeći Argumenti naredbenog retka za SpringBootTest

Izdanjem Spring Boota 2.2 stekli smo mogućnost ubrizgavanja argumenata naredbenog retka tijekom testiranja korištenjem @SpringBootTest I je argumenata atribut:

@SpringBootTest (args = "--spring.main.banner-mode = off") javna klasa ApplicationTest {@Test public void whenUsingSpringBootTestArgs_thenCommandLineArgSet (@Autowired Environment env) {Assertions.assertThat (env.getProperty ("spring.main.main. način rada ")). isEqualTo (" isključeno "); }}

7. Zaključak

U ovom smo članku naučili kako iz naredbenog retka proslijediti argumente našoj aplikaciji Spring Boot i kako to učiniti koristeći Maven i Gradle.

Pokazali smo i kako možete pristupiti tim argumentima iz svog koda kako biste konfigurirali svoju aplikaciju.


$config[zx-auto] not found$config[zx-overlay] not found