מסגרת Spring

התיק פריימוורק הוא אחד מהפריימוורקים הפופולריים ביותר ב-Java EE. במאמר זה, נלמד על הנושאים הבאים:

  • אדריכלות ה-Spring Framework
  • רכיבים עיקריים של Spring
  • פרויקטים שונים בתחתית ה-Spring Framework

I looked at the Google Trends chart for Spring Framework, Servlet, JSP, and JSF. It’s clear that Spring is far ahead from all other Java EE technologies.

Spring Framework – Google Trends

מהו ה-Spring Framework?

ה-Spring הוא אחד מהפריימוורקים הנפוצים ביותר לגרסת Enterprise של Java. מפתחים מכל רחבי העולם משתמשים ב-Spring לפיתוח אפליקציות אמינות ובאיכות גבוהה. ה-Spring נוצר על ידי Rod Johnson ומאז הפך לטכנולוגיה אלטרנטיבית בעולם ה-Java עבור המודל EJB. ניתן ליצור סוגים שונים של אפליקציות באמצעות ה-Spring Framework.

עקרונות בסיסיים של Spring – DI, IoC, AOP

  • אי אפשר להבין מהו ה-Spring Framework בלעדיי הבנה של מונחים כמו הזרמת תלות ו-הפוך של בקרה. הזרמת תלות, הידועה גם כ-DI, היא אחת מסוגי ההפוך של בקרה (IoC).
  • ההפיכה של השליטה – זו העקרון של תכנות עצמאי, שבו אובייקטים בתוכנית אינם תלויים במימוש ספציפי של אובייקטים אחרים, אך עשויים להכיל ידע על המופשטים שלהם (ממשקים) לצורך אינטראקציה מאוחרת.
  • הזרמת תלות – היא קומפוזיציה של תכני עיצוב מבניים, בה יש לכל פונקציה באפליקציה יישות יחידה, עצמאית למדי, שעשויה להכיל צורך להשתמש באובייקטים אחרים (תלות) שמוכרים לה דרך ממשקים. התלות מועברת (מיושמת) לשירות בעת יצירתו. זוהי מצב בו אנו מכניסים אלמנט ממחלקה אחת למחלקה אחרת. בפועל, זרימת התלות מיושמת על ידי מעבר פרמטרים לבנאי או באמצעות שימוש ב-setters. ספריות המיישמות גישה זו נקראות גם מכלולי הפיכת שליטה.
  • תכנות כוונתי לפרספקטים – פרדיגמת תכנות המאפשרת להבחין בין פונקציות מקוצוע באפליקציה. פונקציות אלו, שמתקראות דרך כמה נקודות באפליקציה, נקראות דברי חוצה והם מופרדים מלוגיקת העסקים הישירה של האפליקציה. ב-OOP, היחידה המרכזית היא המחלקה, תוך שב-AOP, היחידה המרכזית היא האספקט. זרמת התלות עוזרת להפריד את מחלקות האפליקציה למודולים נפרדים, ו-AOP עוזר להפריד בין דברי החוצה לאובייקטים שהם משפיעים עליהם.

ארכיטקטורת Spring Framework

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

רכיבי ליבת Spring Framework

המיכל הליבה של Spring כולל ארבעה מודולים: SpEL, Context, Core, Beans. התיאור של אלה הרכיבים הוא כדלקמן:

  1. מודול ה- SpEL מספק שפת ביטוי יצירתית לניהול אובייקטים בזמן ריצה.
  2. ה- Context בנוי על בסיס של Beans ו- Core ומאפשר לך לגשת לכל אובייקט שהוגדר בהגדרות. הרכיב המרכזי של מודול ה- Context הוא ממשק ה- ApplicationContext.
  3. ה- Core מספק חלקי מפתח של הגישה, כולל מאפייני IoC ו- DI של הפריימוורק.
  4. המודול ה- Bean אחראי ליצירה וניהול Spring Beans – יחידת מבנה בהקשר של האפליקציה.

גרסת האינטרנט של Spring Framework

שכבת האינטרנט של Spring Framework כוללת Web, Web-MVC, Web-Socket, Web-Portlet ועוד.

  1. המודול Web מספק פונקציות כמו הורדת קבצים, יצירת אפליקציות אינטרנט, שירותי Web-Service רסט ועוד.
  2. Web-MVC כולל יישום של Spring MVC לאפליקציות אינטרנט.
  3. Web-Socket מספק תמיכה בתקשורת בין הלקוח לשרת באמצעות Web-Sockets באפליקציות אינטרנט.
  4. Web-Portlet מספק יישום של MVC עם סביבת Portlet

גישה לנתונים ב-Spring Framework

מחזיק הנתונים/אינטגרציה כולל JDBC, ORM, OXM, JMS ומודול עסקאות.

  1. JDBC מספק שכבה מופשטת של JDBC ומסירה מהמפתח את הצורך במפתח לרשום באופן ידני קוד רצף התקשורת המקושר עם התחברות למסד נתונים.
  2. Spring ORM מספק אינטגרציה עם ORM פופולריים כמו Hibernate, JDO, שהם יישומים של JPA.
  3. המודול OXM אחראי לשילוב בין Object / XML – XMLBeans, JAXB, וכו'
  4. המודול JMS (שירות הודעות ג'אווה) אחראי ליצירת, שליחה וקבלת הודעות.
  5. הפעולות תומכות בניהול העסקאות עבור מחלקות שמיישמות שיטות מסוימות ו- POJOs.

מודולים שונים

Spring כוללת גם מספר מודולים חשובים אחרים, כגון AOP, Aspects, Instrumentation, Messaging ו- Test.

  1. AOP מיישם תכנות מונחים ומאפשר שימוש בכל היתרונות של יכולות AOP.
  2. המודול Aspects מספק אינטגרציה עם AspectJ, שהוא גם מסגרת AOP חזקה.
  3. Instrumentation אחראית לתמיכה בכלי הכלים לרכיבת מחלקות ולטועני המחלקות, שמשמשים ביישומי שרת.
  4. המודול Messaging מספק תמיכה ב- STOMP.
  5. לבסוף, המודול Test מספק בדיקות באמצעות TestNG או מסגרת JUnit.

תכונות Spring 5

Spring 5 הביאה עדכון מסוים ל-Spring 4. חלק מתכונות המרכזיות של Spring 5 הם:

  1. תמיכה ב-Java 8, Java 9, Java EE 7, Java EE 8, Servlet 4.0, Bean Validation 2.0 ו-JPA 2.2. אני שמח לראות ש-Spring מנסה להתפקד בהתאם לגרסאות האחרונות של טכנולוגיות ראשיות שבשימוש.
  2. שיפור בלוגינג עם מודול חדש – spring-jcl.
  3. פעולות קובץ משתמשות בנפח NIO 2, ולכן יש שיפור בביצועים.
  4. תמיכה ב-Reactor 3.1 Flux ו-Mono, וכן ב-RxJava 1.3 ו-2.1 כערכי החזרה משיטות הבקרה של Spring MVC.
  5. תמיכה ב-Kotlin, Project Lombok, JSON Binding API כאלטרנטיבה ל-Jackson ו-GSON.
  6. Spring WebFlux – התקן ריאקטיבי של Spring.
  7. תמיכה ב-JUnit 5
  8. תמיכה בתכנות פונקציונל דרך Kotlin.

אפשר לבדוק את פרויקטי Spring ב-מאגר הקוד שלנו ב-GitHub.

הפניות: אתר הרשמי של Spring, תיעוד ההפניות של Spring

Source:
https://www.digitalocean.com/community/tutorials/spring-framework