Parancssori érvek a tavaszi indításkor

1. Áttekintés

Ebben a gyors bemutatóban megvitatjuk, hogyan adhatunk át parancssori argumentumokat a Spring Boot alkalmazásnak.

Parancssori argumentumokkal konfigurálhatjuk az alkalmazásunkat, felülírhatjuk az alkalmazás tulajdonságait vagy átadhatunk egyéni argumentumokat.

2. Maven parancssori érvek

Először nézzük meg, hogyan adhatunk át argumentumokat az alkalmazás futtatásakor a Maven Plugin segítségével.

Később meglátjuk, hogyan lehet elérni a kódunkban szereplő argumentumokat.

2.1. Tavaszi csizma 1.x

A Spring Boot 1.x esetén az argumentumokat átadhatjuk alkalmazásunknak -Drun.arguments:

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

Több paramétert is átadhatunk az alkalmazásunknak:

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

Vegye figyelembe, hogy:

  • Az érveket vesszővel kell elválasztani
  • Minden argumentum előtagja -
  • Átadhatjuk a konfigurációs tulajdonságokat, mint a tavasz.fõ.bankár mód a fenti példában látható

2.2. Tavaszi csizma 2.x

A Spring Boot 2.x esetében az argumentumokat a következővel adhatjuk át -Dspring-boot.run.arguments:

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

3. Gradle parancssori érvek

Ezután fedezzük fel, hogyan adhatunk át argumentumokat az alkalmazásunk futtatása közben a Gradle Plugin segítségével.

Be kell állítanunk a bootRun feladat ben épít.gradle fájl:

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

Most a következőképpen adhatjuk át a parancssori argumentumokat:

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

4. A rendszer tulajdonságainak felülbírálása

Az egyéni argumentumok átadásán felül felülírhatjuk a rendszer tulajdonságait is.

Például itt van a miénk alkalmazás.tulajdonságok fájl:

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

A szerver port értéket, a következő módon kell átadnunk az új értéket (Spring Boot 1.x esetén):

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

Hasonlóan a Spring Boot 2.x-hez is:

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

Vegye figyelembe, hogy:

  • A Spring Boot a parancssori argumentumokat tulajdonságokká alakítja, és környezeti változókként adja hozzá
  • Használhatunk rövid parancssori argumentumokat –Port = 8085 ahelyett –Szerver.port = 8085 helyőrző használatával alkalmazás.tulajdonságok:
    server.port = $ {port: 8080}
  • A parancssori argumentumok elsőbbséget élveznek alkalmazás.tulajdonságok értékek

Ha szükséges, leállíthatjuk az alkalmazásunkat a parancssori argumentumok tulajdonságokká alakításával:

@SpringBootApplication public class Az alkalmazás kiterjeszti a SpringBootServletInitializer {public static void main (String [] argumentum) {SpringApplication alkalmazás = új SpringApplication (Application.class); application.setAddCommandLineProperties (hamis); application.run (args); }}

5. Hozzáférés a parancssori argumentumokhoz

Lássuk, hogyan érhetjük el a parancssori argumentumokat az alkalmazásunkból fő() módszer:

@SpringBootApplication public class Az alkalmazás kiterjeszti a SpringBootServletInitializer {public static void main (String [] args) {for (String arg: args) {System.out.println (arg); } SpringApplication.run (Application.class, érvel); }}

Ez kinyomtatja azokat az argumentumokat, amelyeket parancssorból adtunk át az alkalmazásunknak, de később is felhasználhatjuk őket alkalmazásunkban.

6. Átadás Parancssori érvek a SpringBootTest

A Spring Boot 2.2 kiadásával lehetőségünk nyílt parancssori argumentumok beadására a tesztelés során @SpringBootTest és annak érvel tulajdonság:

@SpringBootTest (args = "--spring.main.banner-mode = off") public class ApplicationTest {@Test public void whenUsingSpringBootTestArgs_thenCommandLineArgSet (@Autowired Environment env) {Assertions.assertThat (env.getPropban ("spring.main) mód ")). isEqualTo (" ki "); }}

7. Következtetés

Ebben a cikkben megtanultuk, hogyan adhatunk át argumentumokat a Spring Boot alkalmazásnak parancssorból, és hogyan tehetjük meg mind a Maven, mind a Gradle használatával.

Megmutattuk azt is, hogyan érheti el ezeket az argumentumokat a kódjából az alkalmazás konfigurálása érdekében.