אביב YAML לעומת נכסים

1. הקדמה

YAML הוא סימון ידידותי לאדם המשמש בקבצי תצורה. מדוע נעדיף סדרת נתונים זו על פני קובץ המאפיינים ב- Spring Boot? מלבד הקריאות והפחתת החזרה, YAML היא השפה המושלמת לכתיבת תצורה כקוד עבור הפריסות.

באותו אופן, השימוש ב- YAML עבור DevOps Spring מאפשר לאחסון של משתני התצורה בסביבה כפי שממליץ המאמת 12 גורמים.

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

2. סימון YAML

YAML מייצג ראשי תיבות רקורסיביים עבור "YAML Ain't Markup Language". הוא מספק את המאפיינים הבאים:

  • יותר בהירות וידידות אנושית
  • מושלם לנתוני תצורה היררכיים
  • הוא תומך בשיפור יכולות כגון מפות, רשימות וסוגי סקלר

יכולות אלו הופכות את YAML לבן הזוג המושלם עבורו קבצי תצורת אביב. מילת אזהרה כאן למי שמתחיל ב- YAML: לכתוב את זה יכול להיות קצת מייגע בהתחלה בגלל כללי הכניסה שלו.

בואו נראה איך זה עובד!

3. תצורת YAML באביב

כפי שהוזכר בסעיפים הקודמים, YAML הוא פורמט נתונים יוצא דופן עבור קבצי תצורה. זה הרבה יותר קריא, והוא מספק יכולות משופרות על פני קובץ המאפיינים. לכן, הגיוני להמליץ ​​על סימון זה על פני תצורת קובץ המאפיינים. יתר על כן, מגרסה 1.2, YAML הוא קבוצת על של JSON.

בנוסף, באביב קבצי התצורה המוצבים מחוץ לחפץ עוקפים את אלה שנמצאים בתוך הצנצנת הארוזה. מאפיין מעניין נוסף בתצורת האביב הוא האפשרות להקצות משתני סביבה בזמן הריצה. זה חשוב ביותר עבור פריסות DevOps.

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

הערה: תכונה זו נתמכת גם עבור קבצי מאפיינים עם Spring Boot 2.4.0.

במקרה שלנו, למטרות פריסה, יהיו לנו שלוש: בדיקות, פיתוח וייצור:

קפיץ: פרופילים: פעיל: - מבחן --- קפיץ: תצורה: הפעל: על פרופיל: שם בדיקה: בדיקת YAML סביבה: שרתי בדיקה: - www.abc.test.com - www.xyz.test.com - - אביב: config: הפעל: on-profile: שם prod: prod-YAML סביבה: שרתי ייצור: - www.abc.com - www.xyz.com --- spring: config: הפעל: on-profile: dev שם: $ {DEV_NAME: dev-YAML} סביבה: שרתי פיתוח: - www.abc.dev.com - www.xyz.dev.com

הערה: אם אנו משתמשים בגרסת Spring Boot לפני 2.4.0, עלינו להשתמש ב- אביב.פרופילים נכס במקום spring.config.activate.on-profile השתמשנו כאן.

בואו נבדוק כעת את spring.profiles.active מאפיין המקצה את סביבת הבדיקה כברירת מחדל. אנו יכולים לפרוס מחדש את החפץ באמצעות פרופילים שונים מבלי לבנות שוב את קוד המקור.

מאפיין מעניין נוסף באביב הוא שתוכל להפעיל את הפרופיל באמצעות משתנה הסביבה:

ייצא SPRING_PROFILES_ACTIVE = dev

נראה את הרלוונטיות של משתנה סביבה זה בסעיף בדיקות. לבסוף, אנו יכולים להגדיר מאפייני YAML המקצים ישירות את הערך מהסביבה:

שם: $ {DEV_NAME: dev-YAML}

אנו יכולים לראות שאם לא מוגדר משתנה סביבה, ערך ברירת מחדל dev-YAML משמש.

4. הפחתת חזרה וקריאות

המבנה ההיררכי של YAML מספק דרכים להפחתת הרמות העליונות של קובץ מאפייני התצורה. בואו נראה את ההבדלים עם דוגמה:

רכיב: idm: url: myurl משתמש: סיסמת משתמש: תיאור סיסמה:> זה אמור להיות שירות תיאור ארוך: url: אסימון myurlservice: תיאור אסימון:> זה צריך להיות עוד תיאור ארוך

אותה תצורה תהפוך מיותרת באמצעות קובץ המאפיינים:

component.idm.url = myurl component.idm.user = user component.idm.password = סיסמה component.idm.description = זה אמור להיות רכיב ארוך \ תיאור component.service.url = myurlservice component.service.token = רכיב אסימון. service.description = זה אמור להיות עוד תיאור ארוך \

האופי ההיררכי של YAML משפר מאוד את הקריאות. זו לא רק שאלה של הימנעות מחזרות אלא גם הכניסה, המשמשת היטב, מתארת ​​באופן מושלם על מה התצורה ולמה היא מיועדת. עם YAML, כמו במקרה של קובץ מאפיינים עם קו נטוי אחורי \, ניתן לפרק את התוכן למספר שורות עם > אופי.

5. רשימות ומפות

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

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

שרתים: - www.abc.test.com - www.xyz.test.com חיצוני: [www.abc.test.com, www.xyz.test.com]

שתי הדוגמאות מספקות את אותה התוצאה. התצורה המקבילה באמצעות קובץ המאפיינים תהיה קשה יותר לקריאה:

שרתי [0] = www.abc.test.com שרתי [1] = www.xyz.test.com חיצוני = www.abc.test.com, www.xyz.test.com

שוב גרסת ה- YAML ניתנת לקריאה אנושית וברורה יותר.

באותו אופן, אנו יכולים להגדיר מפות:

מפה: מפתח ראשון: מפתח 1 מפתח שני: מפתח 2

6. בדיקות

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

2020-06-11 13: 58: 28.846 INFO 10720 --- [ראשי] com.baeldung.yaml.My יישום: ... באמצעות סביבה: שם בדיקה: שרתי מבחן YAML: [www.abc.test.com, www .xyz.test.com] חיצוני: [www.abc.test.com, www.xyz.test.com] מפה: {firstkey = key1, secondkey = key2} Idm: URL: myurl User: user password: password Description: זה אמור להיות תיאור ארוך שירות: כתובת אתר: myurlservice אסימון: אסימון תיאור: זה אמור להיות עוד תיאור ארוך

אנו יכולים להחליף את השם על ידי הגדרת תצורה DEV_NAME בסביבה:

ייצא DEV_NAME = new-dev-YAML

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

2020-06-11 17: 00: 45.459 מידע 19636 --- [ראשי] com.baeldung.yaml.My יישום: ... באמצעות סביבה: שם פיתוח: שרתי new-dev-YAML: [www.abc.dev.com , www.xyz.dev.com]

בואו נתמודד עם סביבת הייצור באמצעות SPRING_PROFILES_ACTIVE = מוצר:

ייצא SPRING_PROFILES_ACTIVE = prod 2020-06-11 17: 03: 33.074 מידע 20716 --- [ראשי] ... באמצעות סביבה: שם ייצור: שרתי prod-YAML: [www.abc.com, www.xyz.com]

7. מסקנה

במדריך זה תיארנו את מורכבות השימוש בתצורת YAML בהשוואה לקובץ המאפיינים.

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

כמו תמיד, הקוד זמין ב- GitHub.


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