Spring Framework

תשתית התוכנה ספרינג (באנגלית: Spring Framework; להלן: ספרינג) היא שלד תוכנה בקוד פתוח ומנגנון להיפוך שליטה (Inversion of Control) עבור הפלטפורמה של ג'אווה.

ניתן להשתמש ביכולות הליבה של ספרינג בכל יישום Java, אבל קיימות גם הרחבות לבניית יישומי רשת על גבי פלטפורמת ה-Java EE. למרות שספרינג אינה כופה עבודה לפי פרדיגמת תכנות מסוימת, היא הפכה פופולרית בקהילת ה-Java כאלטרנטיבה או אפילו כתוספת למודל ה-(Enterprise JavaBeans (EJB.

מודולים 
ספרינג מורכבת מכמה מודולים המספקים מגוון שירותים:

 היפוך שליטה (Inversion of Control container): קונפיגורציה של רכיבי היישום וניהול מחזור החיים של אובייקטים של ג'אווה, מבוצע בעיקר באמצעות הזרקת תלויות (dependency injection).
 תכנות מוכוון-היבטים (Aspect-oriented programming): מאפשר טיפול בדרישות חותכות (Cross-cutting concerns).
 גישה לנתונים (data access): עבודה עם בסיסי נתונים יחסיים באמצעות JDBC וכלים למיפוי אובייקטי-רלציוני (ORM) ועבודה עם בסיסי נתונים מסוג NoSQL.
 ניהול טרנזקציות (transaction management): מאחד כמה ממשקי תכנות יישומים (APIs) לניהול טרנזקציות ומתאם טרנזקציות עבור אובייקטים של ג'אווה.
 Model-View-Controller: תשתית מבוססת HTTP ו-servlets המספקת אפשרויות להרחבה והתאמה של יישומי ווב ו-web services מבוססי REST.
 גישה מרחוק (remote access framework): ייבוא וייצוא של אובייקטי ג'אווה דרך רשת מחשבים, בסגנון RPC. תומך בפרוטוקולים CORBA ,RMI ופרוטוקולים מבוססי HTTP, כולל web services מבוססי SOAP.
 Convention over configuration: פתרון לפיתוח יישומים מהיר עבור יישומי enterprise מבוססי ספרינג, מוצע במסגרת המודול Spring Roo.
 עיבוד באצווה (batch processing): תשתית לעיבוד נפחים גדולים, כולל פונקציות ניתנות לשימוש חוזר, ניהול טרנזקציות, סטטיסטיקות של עיבוד עבודות, אתחול ודילוג על עבודות וניהול משאבים.
 אימות זהות והרשאות (authentication and authorization): תהליכי אבטחה ניתנים לקונפיגורציה, התומכים במגוון של סטנדרטים, פרוטוקולים, כלים ושיטות, דרך תת-הפרויקט Spring Security.
 ניהול מרוחק (remote management): חשיפה וניהול של אובייקטי ג'אווה לצורך קונפיגורציה מקומית או מרוחקת באמצעות JMX.
 העברת מסרים (Messaging): רישום אובייקטים שתפקידם להאזין למסרים, לצריכת מסרים שקופה מתוך תורי מסרים באמצעות JMS. שיפור האפשרויות לשליחת מסרים באמצעות APIs סטנדרטיים של JMS.
 בדיקות (testing): תומך במחלקות לכתיבת בדיקות יחידה ובדיקות אינטגרציה.

ראו גם 
 היפוך שליטה
 תכנות מוכוון-היבטים
 הזרקת תלויות
 מיפוי אובייקטי-רלציוני
 Hibernate
 Enterprise JavaBeans

קישורים חיצוניים 

 
 Spring Framework - סדרת מדריכי וידאו באתר YouTube 
 Spring AOP - סדרת מדריכי וידאו באתר YouTube 
 Spring Data Support - סדרת מדריכי וידאו באתר YouTube 

Java