IntelliJ - Nie je možné vyriešiť chybu vlastností vlastnosti Spring Boot Configuration

1. Prehľad

Keď vkladáme vlastnosti runtime do našich jarných aplikácií, môžeme definovať triedy bean pre skupiny vlastných vlastností.

IntelliJ poskytuje pomoc a automatické dokončovanie pre vstavané vlastnosti fazule. Potrebuje však malú pomoc s poskytnutím týchto vlastností pre vlastné vlastnosti.

V tomto krátkom tutoriáli sa pozrieme na to, ako vystaviť tieto vlastnosti IntelliJ, aby sa uľahčil vývojový proces.

2. Vlastné vlastnosti

Poďme sa pozrieť na pomoc na obrazovke, ktorú nám môže IntelliJ poskytnúť ohľadom vlastností našej aplikácie:

Tu sú vlastnosti url a časový limit v milisekundách sú vlastné vlastnosti. Vidíme popis, typ a voliteľnú predvolenú hodnotu.

Ak je však vlastnosť neznáma, IntelliJ nám zobrazí varovanie:

To je preto, že, bez metadát nám IntelliJ nemôže pomôcť.

Teraz sa pozrime, čo musíme urobiť, aby sme to napravili.

3. Závislosti

Najprv musíme pridať spring-boot-configuration-processor závislosť na našom pom.xml:

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

The spring-boot-configuration-processor sa vyvolá vždy, keď budujeme náš projekt. Vytvorí súbory metadát v target / classes / META-INF /.

Závislosť je označená ako voliteľná, čo znamená, že sa nededí, keď niekto použije náš projekt ako závislosť.

Ďalej uvidíme, kde spring-boot-configuration-processor získa informácie použité na vytvorenie metadát.

4. Konfiguračné metadáta s @ConfigurationProperties

Naše vlastnosti definujeme v triede s poznámkami @ConfigurationProperties:

@Configuration @ConfigurationProperties (prefix = "com.baeldung") verejná trieda CustomProperties {/ ** * Adresa URL, ku ktorej sa chcete pripojiť. * / Adresa URL reťazca; / ** * Čas čakania na pripojenie. * / private int timeoutInMilliSeconds = 1000; // Getters and Setters}

Trieda tu obsahuje názvy vlastností, ich typy a všetky predvolené hodnoty uvedené v zozname inicializátorov. Javadoc taktiež poskytuje popisy každej nehnuteľnosti.

Počas stavby bol anotačný procesor vyhľadáva všetky triedy, ktoré sú anotované@ConfigurationProperties. Generuje metadáta vlastných vlastností pre každú inštančnú premennú triedy.

5. Súbor metadát konfigurácie

5.1. Formát súboru metadát

Súbor metadát, ktorý popisuje vlastné vlastnosti, riadi kontextovú pomoc v IntelliJ, napríklad:

{"groups": [{"name": "com.baeldung", "type": "com.baeldung.configuration.processor.CustomProperties", "sourceType": "com.baeldung.configuration.processor.CustomProperties"}] , "properties": [{"name": "com.baeldung.url", "type": "java.lang.String", "description": "Adresa URL na pripojenie.", "sourceType": "com .baeldung.configuration.processor.CustomProperties "}, {" name ":" com.baeldung.timeout-in-milli-seconds "," type ":" java.lang.Integer "," description ":" Čas do počkajte na pripojenie. "," sourceType ":" com.baeldung.configuration.processor.CustomProperties "," defaultValue ": 1000}]," rady ": []}

Pretože anotačný procesor generuje tento súbor pre nás z nášho kódu, existuje nie je potrebné priamo prezerať alebo upravovať tento súbor.

5.2. Metadáta bez a ConfigurationProperties Bean

Ak máme existujúce vlastnosti, ktoré nie sú zavedené a @ConfigurationProperties, ale stále chcete svoj súbor metadát, potom môže IntelliJ pomôcť.

Pozrime sa podrobnejšie na varovnú správu z minulosti:

Tu vidíme a Definujte konfiguračný kľúč možnosť, ktorú môžeme použiť na vytvorenie súboru additional-spring-configuration-metadata.json spis. Vytvorený súbor bude vyzerať takto:

{"properties": [{"name": "com.baeldung.timeoutInMilliSeconds", "type": "java.lang.String", "description": "Popis pre com.baeldung.timeoutInMilliSeconds." }]}

Pretože neexistujú žiadne informácie o nehnuteľnosti odkiaľkoľvek inde, budeme musieť ručne upraviť metaúdaje v ňom. Predvolená hodnota typu je vždys Reťazec.

Poďme do súboru vložiť nejaké ďalšie informácie:

{"properties": [{"name": "com.baeldung.timeout-in-milli-seconds", "type": "java.lang.Integer", "description": "Čas čakania na pripojenie. "," sourceType ":" com.baeldung.configuration.processor.CustomProperties "," defaultValue ": 1000}]}

Všimnite si, že budeme musieť znova zostavte projekt, aby sa nová vlastnosť mohla zobrazovať v automatickom dokončovaní.

Mali by sme tiež poznamenať, že možnosť generovania tohto súboru metadát je k dispozícii aj prostredníctvom skratky IntelliJ Alt + ENTER nad neznámou vlastnosťou.

6. Záver

V tomto článku sme sa pozreli na to, ako IntelliJ používa metadáta vlastnosti konfigurácie na poskytnutie pomoci s našimi súbormi vlastností.

Videli sme, ako používať jarný anotačný procesor na generovanie metadát z vlastných tried. Potom sme videli, ako pomocou skratky v IntelliJ vytvoriť súbor metadát, ktorý chcete manuálne upraviť.

Ako vždy, kód z príkladov v tomto článku nájdete na GitHub.