Kotlin-allopen ואביב

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

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

הפיתרון הטבעי הוא פתיחה ידנית של שיעורי קוטלין באמצעות לִפְתוֹחַ מילת מפתח או להשתמש ב kotlin-allopen תוסף - הפותח באופן אוטומטי את כל הכיתות הדרושות לעבודה של אביב.

2. תלות Maven

נתחיל בהוספת התלות Kotlin-Allopen:

 org.jetbrains.kotlin kotlin-maven-allopen 1.1.4-3 

כדי להפעיל את התוסף, עלינו להגדיר את התצורה של kotlin-allopen בסעיף הבנייה:

 ... ... kotlin-maven-plugin org.jetbrains.kotlin 1.1.4-3 spring 1.8 compile compile compile test-compile test-compile test-compile org.jetbrains.kotlin kotlin-maven-allopen 1.1.4-3 

3. התקנה

עכשיו בואו נשקול SimpleConfiguration.kt, מחלקת תצורה פשוטה:

מחלקה @ תצורה SimpleConfiguration {}

4. בלי קוטלין-אלופן

אם נבנה את הפרויקט שלנו ללא התוסף, נראה את הודעת השגיאה הבאה:

org.springframework.beans.factory.parsing.BeanDefinitionParsingException: בעיית תצורה: מחלקת @Configuration 'SimpleConfiguration' עשויה שלא להיות סופית. הסר את השינוי הסופי כדי להמשיך.

הדרך היחידה לפתור אותה היא לפתוח אותה באופן ידני:

@Configuration מחלקה פתוחה SimpleConfiguration {}

5. כולל קוטלין-אלופן

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

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

@Configuration ציבורי פתוח בכיתה פתוחה SimpleConfiguration ציבור () {}

6. מסקנה

במאמר מהיר זה, ראינו כיצד לפתור את בעיית "הכיתה לא יכולה להיות סופית" באביב ובקוטלין.

קוד המקור של מאמר זה ניתן למצוא באתר GitHub.


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