IntelliJ - Nem lehet megoldani a tavaszi indítás konfigurációs tulajdonságainak hibáját
1. Áttekintés
Amikor a futásidejű tulajdonságokat befecskendezzük a tavaszi alkalmazásokba, meghatározhatunk babosztályokat az egyéni tulajdonságok csoportjaihoz.
Az IntelliJ segítséget és automatikus kiegészítést nyújt a beépített tulajdonságú babokhoz. Egy kis segítségre van azonban szüksége ahhoz, hogy ezeket az egyedi tulajdonságokhoz biztosítsa.
Ebben a rövid bemutatóban megvizsgáljuk, hogyan tegyük ki ezeket a tulajdonságokat az IntelliJ számára a fejlesztési folyamat megkönnyítése érdekében.
2. Egyedi tulajdonságok
Vessünk egy pillantást a képernyőn megjelenő segítségre, amelyet az IntelliJ tud nyújtani számunkra az alkalmazás tulajdonságaira vonatkozóan:
Itt a tulajdonságok url és ezredmásodpercek közötti időtúllépés egyedi tulajdonságok. Láthatjuk a leírást, a típust és az opcionális alapértelmezett értéket.
De ha egy tulajdonság ismeretlen, az IntelliJ figyelmeztetést jelenít meg nekünk:
Ez azért van, mert, metaadatok nélkül az IntelliJ nem tud segíteni rajtunk.
Most nézzük meg, mit kell tennünk ennek kijavítása érdekében.
3. Függőségek
Először hozzá kell adnunk a spring-boot-configuration-processzor függőség a mi pom.xml:
org.springframework.boot spring-boot-configuration-processzor true
A spring-boot-configuration-processzor minden alkalommal, amikor felépítjük a projektünket. A metaadat fájlokat itt hozza létre target / class / META-INF /.
A függőséget opcionálisként jelöljük meg, ami azt jelenti, hogy nem öröklődik, ha valaki a projektünket függőségként használja.
Ezután meglátjuk, hol spring-boot-configuration-processzor megkapja a metaadatok létrehozásához használt információkat.
4. Konfigurációs metaadatok a @ConfigurationProperties
Tulajdonságainkat egy olyan osztályban definiáljuk, amelyhez annotáltunk @ConfigurationProperties:
@Configuration @ConfigurationProperties (prefix = "com.baeldung") public class CustomProperties {/ ** * A csatlakozáshoz szükséges URL. * / Karakterlánc URL; / ** * A kapcsolat megvárásának ideje. * / privát int timeoutInMilliSeconds = 1000; // Getters and Setters}
Itt az osztály tartalmazza a tulajdonságneveket, azok típusait és az inicializáló listában megadott alapértelmezéseket. A Javadoc leírja az egyes tulajdonságokat is.
Egy építkezés során a az annotációs processzor megkeresi az összes olyan osztályt, amelyhez annotáció van@ConfigurationProperties. Egyéni tulajdonság-metaadatokat generál az osztály minden példányváltozójához.
5. Konfigurációs metaadatfájl
5.1. A metaadatfájl formátuma
Az egyéni tulajdonságokat leíró metaadatfájl meghajtja a kontextuális segítséget az IntelliJ alkalmazásban, például:
{"csoportok": [{"név": "com.baeldung", "type": "com.baeldung.configuration.processor.CustomProperties", "sourceType": "com.baeldung.configuration.processor.CustomProperties"}] , "tulajdonságok": [{"név": "com.baeldung.url", "type": "java.lang.String", "description": "A csatlakozáshoz szükséges URL.", "sourceType": "com .baeldung.configuration.processor.CustomProperties "}, {" name ":" com.baeldung.timeout-in-milli-seconds "," type ":" java.lang.Integer "," description ":" Az idő várja meg a kapcsolatot. "," sourceType ":" com.baeldung.configuration.processor.CustomProperties "," defaultValue ": 1000}]," tippek ": []}
Mivel az annotációs processzor ezt a fájlt előállítja nekünk a kódunkból, ott van nem kell közvetlenül megnézni vagy szerkeszteni ezt a fájlt.
5.2. Metaadatok a nélkül ConfigurationProperties Bab
Ha vannak olyan tulajdonságok, amelyeket nem vezet be az a @ConfigurationProperties, de továbbra is szeretnék a metaadat fájljukat, akkor az IntelliJ segíthet.
Vizsgáljuk meg közelebbről a korábbi figyelmeztető üzenetet:
Itt látjuk a Definiálja a konfigurációs kulcsot opciót, amellyel létrehozhatunk egy additional-spring-configuration-metadata.json fájl. A létrehozott fájl a következőképpen fog kinézni:
{"tulajdonságok": [{"név": "com.baeldung.timeoutInMilliSeconds", "type": "java.lang.String", "description": "com.baeldung.timeoutInMilliSeconds leírása". }]}
Mivel máshonnan nincs információ az ingatlanról, manuálisan kell szerkesztenünk a benne lévő metaadatokat. Az alapértelmezett típus mindigs Húr.
Tegyünk néhány további információt a fájlba:
{"tulajdonságok": [{"név": "com.baeldung.timeout-in-milli-másodperc", "type": "java.lang.Integer", "description": "A kapcsolat megvárásának ideje. "," sourceType ":" com.baeldung.configuration.processor.CustomProperties "," defaultValue ": 1000}]}
Ne feledje, hogy szükségünk lesz rá újjáépíteni a projektet, hogy az új ingatlan automatikusan elkészüljön.
Azt is meg kell jegyeznünk, hogy a metaadatfájl előállításának lehetősége elérhető az IntelliJ Alt + ENTER parancsikonján keresztül egy ismeretlen tulajdonság felett.
6. Következtetés
Ebben a cikkben megvizsgáltuk, hogy az IntelliJ hogyan használja a konfigurációs tulajdonság metaadatait, hogy segítséget nyújtson a tulajdonságfájljainkhoz.
Láttuk, hogyan kell használni a Spring annotációs processzorát a metaadatok előállításához egyéni osztályokból. Ezután láttuk, hogyan lehet az IntelliJ parancsikonjával létrehozni egy metaadatfájlt, amelyet manuálisan szerkeszteni lehet.
Mint mindig, a cikk példáinak kódja megtalálható a GitHubon.