Tavaszi csomagtartó: Fő osztály beállítása

1. Áttekintés

Ez a gyors bemutató különböző módszereket kínál a belépési pont meghatározásához a Spring Boot alkalmazásba a Maven és a Gradle segítségével.

A Spring Boot alkalmazás fő osztálya egy olyan osztály, amely a public static void main () módszer, amely elindítja a tavaszt ApplicationContext. Alapértelmezés szerint, ha a fő osztály nincs kifejezetten megadva, a Spring fordításkor egyet keres az osztályúton, és nem indul el, ha egyiket vagy többeket sem találnak.

A hagyományos Java alkalmazásoktól eltérően az ebben az oktatóanyagban tárgyalt fő osztály nem jelenik meg Főosztály metaadat tulajdonság a kapott JAR vagy WAR fájl META-INF / MANIFEST.MF fájljában.

A Spring Boot elvárja a műtárgyat Főosztály metaadat tulajdonság org.springframework.boot.loader.JarLauncher(vagy WarLauncher)ami azt jelenti, hogy ha fő osztályunkat közvetlenül a java parancssorba továbbítjuk, akkor nem indul el megfelelően a Spring Boot alkalmazás.

A példajegyzék így néz ki:

Manifest-Version: 1.0 Start-Class: com.baeldung.DemoApplication Main-Class: org.springframework.boot.loader.JarLauncher

Ehelyett meg kell határoznunk a Start-osztály tulajdonság a manifesztben, amelyet értékelt JarLauncher az alkalmazás elindításához.

Nézzük meg, hogyan tudjuk ellenőrizni ezt a tulajdonságot a Maven és a Gradle segítségével.

2. Maven

A fő osztály úgy határozható meg kezdő osztály elem a pom.xmlTulajdonságai szakasz:

  com.baeldung.DemoApplication 

Vegye figyelembe, hogy ezt a tulajdonságot csak akkor értékelik, ha hozzáadjuk a spring-boot-starter-szülőt is mint miénkben pom.xml.

Alternatív megoldásként a főosztály meghatározható a mainClass eleme a spring-boot-maven-plugin plugin szakaszunkban pom.xml:

   org.springframework.boot spring-boot-maven-plugin com.baeldung.DemoApplication 

A Maven konfigurációra példa található a GitHub oldalon.

3. Gradle

Ha a Spring Boot Gradle plugin, van néhány konfiguráció, amelyet örököltek org.springframework.boot ahol megadhatnánk a fő osztályunkat.

A projekt Gradle fájljában mainClassName meghatározható belül springBoot konfigurációs blokk. Ezt az itt végrehajtott módosítást felvette bootRun és bootJar feladat:

springBoot {mainClassName = 'cpm.baeldung.DemoApplication'}

Alternatív megoldásként a fő osztály meghatározható a mainClassName tulajdona bootJar Gradle feladat:

bootJar {mainClassName = 'cpm.baeldung.DemoApplication'}

Vagy a bootJar feladat:

bootJar {manifest {attribútumok 'Start-Class': 'com.baeldung.DemoApplication'}}

Ne feledje, hogy a bootJar konfigurációs blokk csak azt a JAR-t érinti, amelyet maga a feladat állít elő. A változás nem befolyásolja más Spring Boot Gradle feladatok viselkedését, mint pl bootRun.

Bónuszként, ha a Gradle alkalmazás plugin alkalmazzák a projektre, mainClassName globális tulajdonságként definiálható:

mainClassName = 'com.baeldung.DemoApplication' 

Ezekre a Gradle konfigurációkra találunk példát a GitHubon.

4. A CLI használata

Megadhatunk egy fő osztályt is a parancssori felületen keresztül.

Tavaszi csizma org.springframework.boot.loader.PropertiesLauncher JVM argumentummal érkezik, amely felülbírálja az úgynevezett logikai főosztályt rakodó.fő:

java -cp bootApp.jar -Dloader.main = com.baeldung.DemoApplication org.springframework.boot.loader.PropertiesLauncher

5. Következtetés

A Spring Boot alkalmazás belépési pontjának megadásához több mint néhány módszer létezik. Fontos tudni, hogy ezek a konfigurációk csak különböző módszerek a JAR vagy WAR fájl jegyzékének módosítására.

Munkakód-példák itt és itt találhatók.