Argumenty príkazového riadku v Spring Boot

1. Prehľad

V tomto rýchlom návode si povieme, ako odovzdať argumenty príkazového riadku do aplikácie Spring Boot.

Pomocou argumentov príkazového riadku môžeme nakonfigurovať našu aplikáciu, prepísať vlastnosti aplikácie alebo odovzdať vlastné argumenty.

2. Argumenty príkazového riadku Maven

Najskôr sa pozrime, ako môžeme pri spustení aplikácie pomocou Maven Plugin odovzdávať argumenty.

Neskôr uvidíme, ako získať prístup k argumentom v našom kóde.

2.1. Jarná topánka 1.x

Pre Spring Boot 1.x môžeme argumenty odovzdať našej aplikácii pomocou -Drun.argumenty:

mvn spring-boot: run -Drun.arguments = - customArgument = vlastný

Do našej aplikácie môžeme tiež odovzdať viac parametrov:

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

Poznač si to:

  • Argumenty by mali byť oddelené čiarkou
  • Pred každým argumentom by malo byť -
  • Môžeme tiež odovzdať vlastnosti konfigurácie, napríklad spring.main.banner-mode zobrazené v príklade vyššie

2.2. Jarná topánka 2.x

Pre Spring Boot 2.x môžeme argumenty odovzdať pomocou -Dspring-boot.run.argumenty:

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

3. Argumenty príkazového riadku Gradle

Ďalej sa poďme dozvedieť, ako zadávať argumenty pri spustení našej aplikácie pomocou doplnku Gradle.

Budeme musieť nakonfigurovať naše bootRun úloha v build.gradle spis:

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

Teraz môžeme zadať argumenty príkazového riadku nasledovne:

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

4. Prepísanie vlastností systému

Okrem zadávania vlastných argumentov môžeme tiež prepísať vlastnosti systému.

Napríklad tu je náš application.properties spis:

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

Ak chcete prepísať Port servera hodnotu, musíme novú hodnotu odovzdať nasledujúcim spôsobom (pre Spring Boot 1.x):

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

Podobne pre Spring Boot 2.x:

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

Poznač si to:

  • Spring Boot prevádza argumenty príkazového riadku na vlastnosti a pridáva ich ako premenné prostredia
  • Môžeme použiť krátke argumenty príkazového riadku –Port = 8085 namiesto –Server.port = 8085 použitím zástupného symbolu v našom application.properties:
    server.port = $ {port: 8080}
  • Argumenty príkazového riadku majú prednosť pred application.properties hodnoty

V prípade potreby môžeme našej aplikácii zabrániť v konvertovaní argumentov príkazového riadku na vlastnosti:

@SpringBootApplication verejná trieda Aplikácia rozširuje SpringBootServletInitializer {public static void main (String [] args) {SpringApplication application = new SpringApplication (Application.class); application.setAddCommandLineProperties (false); application.run (args); }}

5. Prístup k argumentom príkazového riadku

Pozrime sa, ako môžeme získať prístup k argumentom príkazového riadku z našej aplikácie hlavný() metóda:

@SpringBootApplication verejná trieda Aplikácia rozširuje SpringBootServletInitializer {public static void main (String [] args) {for (String arg: args) {System.out.println (arg); } SpringApplication.run (Application.class, args); }}

Toto vytlačí argumenty, ktoré sme do našej aplikácie odovzdali z príkazového riadku, ale mohli by sme ich použiť aj neskôr v našej aplikácii.

6. Prihrávka Argumenty príkazového riadku k SpringBootTest

S vydaním Spring Boot 2.2 sme získali možnosť vložiť argumenty príkazového riadku počas testovania pomocou @SpringBootTest a jeho args atribút:

@SpringBootTest (args = "--spring.main.banner-mode = off") verejná trieda ApplicationTest {@Test public void whenUsingSpringBootTestArgs_thenCommandLineArgSet (@Autowired Environment env) {Assertions.assertThat (env.getProperty ("spring.main.banner" režim ")). isEqualTo (" vypnuté "); }}

7. Záver

V tomto článku sme sa naučili, ako odovzdávať argumenty našej aplikácii Spring Boot z príkazového riadku a ako to robiť pomocou Maven aj Gradle.

Ukázali sme tiež, ako môžete k týmto argumentom získať prístup zo svojho kódu, aby ste mohli nakonfigurovať svoju aplikáciu.


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