IntelliJ - Pogreška svojstava konfiguracije proljetnog pokretanja ne može se riješiti

1. Pregled

Kada ubrizgavamo runtime svojstva u naše Spring aplikacije, možemo definirati klase graha za grupe prilagođenih svojstava.

IntelliJ pruža pomoć i automatski dovršava ugrađena svojstva graha. Međutim, potrebna mu je mala pomoć kako bi ih se osiguralo za prilagođena svojstva.

U ovom ćemo kratkom vodiču pogledati kako izložiti ta svojstva IntelliJ-u kako bi se olakšao proces razvoja.

2. Prilagođena svojstva

Pogledajmo pomoć na zaslonu koju nam IntelliJ može pružiti u vezi sa svojstvima naše aplikacije:

Evo, svojstva url i timeout-u-milisekundama su prilagođena svojstva. Možemo vidjeti opis, vrstu i opcionalnu zadanu vrijednost.

Ali, ako je svojstvo nepoznato, IntelliJ će nam pokazati upozorenje:

Ovo je zbog, bez metapodataka IntelliJ nam ne može pomoći.

Sada pogledajmo što moramo učiniti da to popravimo.

3. Ovisnosti

Prvo, moramo dodati spring-boot-configuration-procesor ovisnost o našoj pom.xml:

 org.springframework.boot spring-boot-configuration-processor true 

The spring-boot-configuration-procesor poziva se svaki put kada gradimo naš projekt. Stvorit će datoteke metapodataka u target / klase / META-INF /.

Ovisnost je označena kao neobavezna, što znači da se ne nasljeđuje kada netko koristi naš projekt kao ovisnost.

Dalje, vidjet ćemo gdje spring-boot-configuration-procesor dobiva informacije korištene za stvaranje metapodataka.

4. Konfiguracijski metapodaci sa @ConfigurationProperties

Svojstva definiramo u klasi označenoj s @ConfigurationProperties:

@Configuration @ConfigurationProperties (prefix = "com.baeldung") javna klasa CustomProperties {/ ** * URL za povezivanje. * / String url; / ** * Vrijeme čekanja na vezu. * / private int timeoutInMilliSeconds = 1000; // Dobavljači i postavljači}

Ovdje klasa sadrži nazive svojstava, njihove tipove i sve zadane vrijednosti na popisu inicijalizatora. Također, Javadoc pruža opise svakog svojstva.

Tijekom gradnje, procesor napomena pretražuje sve klase koje su označene s@ConfigurationProperties. Generira metapodatke prilagođenih svojstava za svaku varijablu instance klase.

5. Datoteka metapodataka o konfiguraciji

5.1. Format datoteke metapodataka

Datoteka s metapodacima koja opisuje prilagođena svojstva pokreće kontekstualnu pomoć u IntelliJ-u, na primjer:

{"groups": [{"name": "com.baeldung", "type": "com.baeldung.configuration.processor.CustomProperties", "sourceType": "com.baeldung.configuration.processor.CustomProperties"}] , "svojstva": [{"name": "com.baeldung.url", "type": "java.lang.String", "description": "URL na koji se treba povezati.", "sourceType": "com .baeldung.configuration.processor.CustomProperties "}, {" name ":" com.baeldung.timeout-in-milli-seconds "," type ":" java.lang.Integer "," description ":" Vrijeme do pričekajte vezu. "," typeType ":" com.baeldung.configuration.processor.CustomProperties "," defaultValue ": 1000}]," hints ": []}

Kako procesor bilješki generira ovu datoteku za nas iz našeg koda, postoji nema potrebe za izravnim gledanjem ili uređivanjem ove datoteke.

5.2. Metapodaci bez a ConfigurationProperties Grah

Ako imamo postojeća svojstva koja nije uveo a @ConfigurationProperties, ali i dalje žele njihovu datoteku s metapodacima, tada IntelliJ može pomoći.

Pogledajmo izbliza poruku upozorenja od prije:

Ovdje vidimo Definirajte konfiguracijski ključ opcija, pomoću koje možemo stvoriti dodatna-opruga-konfiguracija-metapodaci.json datoteka. Stvorena datoteka izgledat će ovako:

{"svojstva": [{"name": "com.baeldung.timeoutInMilliSeconds", "type": "java.lang.String", "description": "Opis za com.baeldung.timeoutInMilliSeconds." }]}

Kako o vlasništvu nema podataka nigdje drugdje, morat ćemo ručno urediti metapodatke unutar njih. Zadana vrijednost tip je uvijeks String.

Stavimo neke dodatne informacije u datoteku:

{"svojstva": [{"ime": "com.baeldung.timeout-in-milli-seconds", "type": "java.lang.Integer", "description": "Vrijeme čekanja na vezu. "," sourceType ":" com.baeldung.configuration.processor.CustomProperties "," defaultValue ": 1000}]}

Imajte na umu da ćemo to morati obnovite projekt da biste vidjeli kako se novo vlasništvo automatski dovršava.

Također, trebali bismo napomenuti da je opcija za generiranje ove datoteke metapodataka također dostupna putem IntelliJ-ove prečice Alt + ENTER preko nepoznatog svojstva.

6. Zaključak

U ovom smo članku pogledali kako IntelliJ koristi metapodatke svojstva konfiguracije za pružanje pomoći s datotekama svojstava.

Vidjeli smo kako koristiti Springov procesor za bilješke za generiranje metapodataka iz prilagođenih klasa. Zatim smo vidjeli kako koristiti prečac u IntelliJu za stvaranje datoteke s metapodacima za ručno uređivanje.

Kao i uvijek, kod iz primjera u ovom članku možete pronaći na GitHubu.


$config[zx-auto] not found$config[zx-overlay] not found