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.