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.