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.