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.