מגף אביב עם שינה

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

במאמר זה נבחן כיצד להשתמש באביב אתחול עם שינה.

נבנה אפליקציית Spring Boot פשוטה ונראה כמה קל לשלב אותה ב- Hibernate.

2. אתחול האפליקציה

אנו נשתמש ב- Spring Initializr בכדי לבצע אתחול היישום Spring Boot שלנו. לדוגמא זו, נשתמש רק בתצורות ובתלות הדרושים לשילוב מצב שינה, והוספה אינטרנט, JPA, ו H2 תלות. נסביר את התלות הללו בסעיף הבא.

בואו ניצור את הפרויקט ונפתח אותו ב- IDE שלנו. אנו יכולים לבדוק את מבנה הפרויקט שנוצר ולזהות את קבצי התצורה הדרושים לנו.

כך ייראה מבנה הפרויקט:

3. תלות Maven

אם נפתח pom.xml, נראה שיש לנו קפיץ-אתחול-רשת ו מבחן אביב-אתחול-התחלה כתלות במוות. כפי שמרמז שמם, אלה תלות מתחילה באביב אתחול.

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

 org.springframework.boot spring-boot-starter-data-jpa 

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

לבסוף, נשתמש H2 כמאגר מידע קל מאוד לדוגמא זו:

 com.h2database h2 runtime 

אנו יכולים להשתמש במסוף H2 כדי לבדוק שה- DB פועל, גם עבור ממשק משתמש ידידותי להזנת הנתונים שלנו. בואו נמשיך ונאפשר זאת application.properites:

spring.h2.console.enabled = נכון

זה כל מה שהיינו צריכים כדי להגדיר כך שיכלול את Hibernate ו- H2 לדוגמא שלנו. אנו יכולים לבדוק שהתצורה הצליחה ביומני כשאנחנו מפעילים את יישום Spring Boot:

HHH000412: Core Hibernate Core {#Version}

HHH000206: hibernate. נכסים לא נמצאו

HCANN000001: ביאורים למצב שינה למצב שינה "# #Version}

HHH000400: שימוש בניב: org.hibernate.dialect.H2Dialect

כעת אנו יכולים לגשת למסוף H2 ב- localhost: // localhost: 8080 / h2-console /.

4. יצירת הישות

כדי לבדוק שה- H2 שלנו פועל כראוי, ניצור תחילה ישות JPA ביחידה חדשה דגמים תיקיה:

@Entity class class ספר {@Id @GeneratedValue פרטי מזהה ארוך; שם מחרוזת פרטי; // בונים סטנדרטיים // גטרים וקובעים סטנדרטיים}

יש לנו עכשיו ישות בסיסית, ש- H2 יכולה ליצור ממנה טבלה. הפעלה מחדש של היישום ובדיקת קונסולת H2, טבלה חדשה בשם סֵפֶר יווצר.

כדי להוסיף כמה נתונים ראשוניים ליישום שלנו, עלינו ליצור קובץ SQL חדש, עם כמה הצהרות הכנסה ולהכניס אותו ל אֶמְצָעִי תיקיה. אנחנו יכולים להשתמש import.sql (תמיכה במצב שינה) או data.sql (תמיכת אביב JDBC) קבצים לטעינת נתונים.

להלן נתוני הדוגמה שלנו:

הכנס לערכי ספרים (1, 'ערבות האבנית'); הכנס לערכי ספרים (2, 'רצועת שירים'); הכנס לערכי ספרים (3, 'לילות חסרי מנוחה: סיפורים נבחרים של דינו באזאטי');

שוב, אנו יכולים להפעיל מחדש את יישום Spring Boot ולבדוק את קונסולת H2 - הנתונים נמצאים כעת ב- סֵפֶר שולחן.

5. יצירת המאגר והשירות

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

ממשק ציבורי @ מאגר @ BookRepository מרחיב את JpaRepository {}

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

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

@Service בכיתה ציבורית BookService {@ מאגר פרטי BookRepository bookRepository; רשימת רשימות ציבורית () {return bookRepository.findAll (); }}

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

נכתוב את הדברים הבאים SpringBootTest:

@RunWith (SpringRunner.class) @SpringBootTest המחלקה הציבורית BookServiceUnitTest {@Service BookService פרטי מאושרים; @ מבחן ציבורי בטל כאשרApplicationStarts_thenHibernateCreatesInitialRecords () {List books = bookService.list (); Assert.assertEquals (books.size (), 3); }}

על ידי הפעלת בדיקה זו, אנו יכולים לבדוק שה- Hibernate יוצר את ה- סֵפֶר נתונים שנאספים בהצלחה על ידי השירות שלנו. זה היה זה, Hibernate פועל עם Spring Boot.

6. שם טבלה גדולה

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

נוכל גם לנסות להגדיר במפורש את שם הטבלה, כך:

@Entity (name = "BOOK") ספר ציבורי ספר {// חברים, סטנדרטים וקובעים סטנדרטיים}

עם זאת, זה לא יעבוד. מה שעובד הוא הגדרת נכס זה ב application.properties:

spring.jpa.hibernate.naming.physical-strategy = org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl

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

7. מסקנה

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

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

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