IntelliJ - לא ניתן לפתור שגיאת מאפייני תצורת אתחול האביב

1. סקירה כללית

כאשר אנו מזריקים מאפייני זמן ריצה ליישומי האביב שלנו, אנו עשויים להגדיר שיעורי שעועית לקבוצות של מאפיינים מותאמים אישית.

IntelliJ מספקת עזרה והשלמה אוטומטית עבור שעועית המאפיינים המובנית. עם זאת, הוא זקוק לעזרה קטנה בכדי לספק אותם עבור מאפיינים מותאמים אישית.

במדריך קצר זה, נבחן כיצד לחשוף מאפיינים אלה בפני IntelliJ כדי להקל על תהליך הפיתוח.

2. מאפיינים מותאמים אישית

בואו נסתכל על העזרה שעל המסך ש- IntelliJ יכולה לספק לנו בנוגע למאפייני היישום שלנו:

הנה, המאפיינים url ו פסק זמן באלפיות השנייה הם מאפיינים מותאמים אישית. אנו יכולים לראות תיאור, סוג וערך ברירת מחדל אופציונלי.

אבל אם נכס אינו ידוע, IntelliJ תראה לנו אזהרה:

זה בגלל ש, ללא מטא נתונים, IntelliJ לא יכולה לעזור לנו.

בואו נסתכל מה עלינו לעשות בכדי לתקן זאת.

3. תלות

ראשית, עלינו להוסיף את מעבד קפיץ-אתחול-תצורה תלות שלנו pom.xml:

 org.springframework.boot קפיץ-אתחול-מעבד תצורה נכון 

ה מעבד קפיץ-אתחול-תצורה מופעל בכל פעם שאנחנו בונים את הפרויקט שלנו. זה ייצור את קבצי המטא נתונים ב- target / שיעורים / META-INF /.

התלות מסומנת כאופציונלית, כלומר היא אינה עוברת בירושה כאשר מישהו משתמש בפרויקט שלנו כתלות.

לאחר מכן, נראה היכן מעבד קפיץ-אתחול-תצורה מקבל את המידע המשמש ליצירת המטא נתונים.

4. מטא נתונים תצורה עם @ConfigurationProperties

אנו מגדירים את המאפיינים שלנו בכיתה עם הערה @ConfigurationProperties:

@Configuration @ConfigurationProperties (קידומת = "com.baeldung") מחלקה ציבורית CustomProperties {/ ** * כתובת האתר להתחברות אליה. * / כתובת מחרוזת; / ** * הזמן לחכות לחיבור. * / time int intimeInMilliSeconds = 1000; // גטרס וסטרים}

כאן המחלקה מכילה את שמות המאפיינים, הסוגים שלהם וכל ברירות המחדל שמופיעות ברשימת האתחול. כמו כן, ה- Javadoc מספק תיאורים של כל נכס.

במהלך בנייה, ה- מעבד ההערות מחפש את כל המחלקות שרשומות עליהן@ConfigurationProperties. הוא יוצר מטא-נתונים מותאמים אישית עבור כל משתנה מופע של המחלקה.

5. קובץ מטא נתונים תצורה

5.1. פורמט של קובץ המטא נתונים

קובץ המטא-נתונים המתאר את המאפיינים המותאמים אישית מניע את העזרה ההקשרית ב- IntelliJ, למשל:

{"קבוצות": [{"name": "com.baeldung", "type": "com.baeldung.configuration.processor.CustomProperties", "sourceType": "com.baeldung.configuration.processor.CustomProperties"}] , "מאפיינים": [{"name": "com.baeldung.url", "type": "java.lang.String", "description": "url להתחבר אליו.", "sourceType": "com .baeldung.configuration.processor.CustomProperties "}, {" name ":" com.baeldung.timeout-in-milli-seconds "," type ":" java.lang.Integer "," description ":" הזמן ל המתן לחיבור. "," sourceType ":" com.baeldung.configuration.processor.CustomProperties "," defaultValue ": 1000}]," hints ": []}

כאשר מעבד ההערות מייצר לנו את הקובץ מהקוד שלנו, יש אין צורך להסתכל או לערוך את הקובץ ישירות.

5.2. מטא נתונים ללא ConfigurationProperties אפונה

אם יש לנו מאפיינים קיימים שלא הוצגו על ידי א @ConfigurationProperties, אך עדיין רוצים את קובץ המטא-נתונים שלהם, אז IntelliJ יכולה לעזור.

בואו נסתכל מקרוב על הודעת האזהרה שלפני:

כאן אנו רואים א הגדר מפתח תצורה אפשרות, שבה נוכל להשתמש כדי ליצור קפיץ-תצורה נוספת-metadata.json קוֹבֶץ. הקובץ שנוצר ייראה כך:

{"נכסים": [{"name": "com.baeldung.timeoutInMilliSeconds", "type": "java.lang.String", "description": "תיאור עבור com.baeldung.timeoutInMilliSeconds." }]}

מכיוון שאין מידע על הנכס מכל מקום אחר, נצטרך לערוך ידנית את המטא נתונים בתוכו. ברירת המחדל סוּג הוא תמידמחרוזת.

בואו נכניס קצת מידע נוסף לקובץ:

{"נכסים": [{"name": "com.baeldung.timeout-in-milli-seconds", "type": "java.lang.Integer", "description": "הזמן לחכות לחיבור. "," sourceType ":" com.baeldung.configuration.processor.CustomProperties "," defaultValue ": 1000}]}

שים לב שנצטרך לבנות מחדש את הפרויקט כדי לראות את הנכס החדש עולה אוטומטית.

כמו כן, נציין כי האפשרות ליצור קובץ מטא נתונים זה זמינה גם באמצעות קיצור הדרך Alt + ENTER של IntelliJ על מאפיין לא ידוע.

6. מסקנה

במאמר זה בדקנו כיצד IntelliJ משתמשת במטא נתונים של מאפייני התצורה כדי לספק עזרה בקבצי המאפיינים שלנו.

ראינו כיצד להשתמש במעבד ההערות של Spring כדי ליצור את המטא-נתונים ממחלקות מותאמות אישית. לאחר מכן ראינו כיצד להשתמש בקיצור דרך ב- IntelliJ ליצירת קובץ מטא-נתונים לעריכה ידנית.

כמו תמיד, ניתן למצוא את הקוד מהדוגמאות במאמר זה ב- GitHub.


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