سبرينج بوت (برمجية)

إطار عمل Java لإنشاء تطبيقات على مستوى المؤسسات

سبرينج بوت (بالإنجليزية: Spring Boot) إطار عمل مفتوح المصدر في لغة Java يستخدم لبرمجة التطبيقات المستقلة عالية الجودة مع مجموعة من المكتبات التي تسهل بدء تشغيل المشروع وإدارته.[3] وهو امتداد للاتفاقية على التكوين لمنصة سبرينج جافا يهدف إلى تقليل مخاوف التكوين أثناء إنشاء تطبيقات تعتمد على سبرينج.[4][5]

سبرينج بوت
معلومات عامة
تاريخ النشر
1 أبريل 2014[1] عدل القيمة على Wikidata
لغة البرمجة
مستودع الشفرة المصدرية
مُعرِّف نسخة البرمجية
3.4.0[2] عدل القيمة على Wikidata
موقع الويب
spring.io… (الإنجليزية) عدل القيمة على Wikidata
الرخصة

لا يزال من الممكن تعديل التطبيق لتلبية احتياجات محددة، ولكن مشروع سبرينج بوت الأولي يوفر "عرضًا محددًا" مُهيأ مسبقًا لأفضل تكوين يمكن استخدامه مع منصة سبرينج ومكتبات الطرف الثالث المحددة. [6] [7]

يمكن استخدام سبرينج بوت لتطوير الخدمات المصغرة، تطبيقات الويب، وتطبيقات وحدة التحكم.[8][9]

الميزات

عدل

تمهيد DispatcherServlet

عدل

لا يحتاج Spring Boot إلى تكوين `DispatcherServlet` يدويًا، حيث يقوم بتكوين التطبيق تلقائيًا بناءً على الإعدادات التي يكتشفها. هذا يجعل عملية إعداد التطبيق أسهل وأسرع، حيث يعالج Spring Boot العديد من التفاصيل تلقائيًا دون الحاجة لتدخل المطور.

مُهيئ SpringBootServlet

عدل

تحتوي Spring Boot على فئة تُدعى `SpringBootServletInitializer`، وهي تعتبر تخصصًا لـ `WebApplicationInitializer`. هذه الفئة توفر تنفيذًا جاهزًا للاستخدام لـ `WebApplicationInitializer`، مما يعني أن المطور ليس بحاجة لإنشاء تنفيذ خاص به لهذه الفئة.

ببساطة، `SpringBootServletInitializer` تسهل على المطورين إعداد تطبيقاتهم لتعمل داخل حاويات السيرفر مثل Tomcat أو Jetty دون الحاجة إلى إعدادات معقدة. توفر هذه الفئة الأساسيات اللازمة لتكوين التطبيق بشكل صحيح.

خصائص التكوين

عدل

يمكن تحديد خصائص التكوين لتطبيق Spring Boot في ملفي `application.properties` أو `application.yml`. من بين الخصائص التي يمكن تضمينها في هذه الملفات، هناك مثالان مهمان هما `server.port` و `spring.application.name`.

- **server.port**: يحدد رقم المنفذ الذي سيستمع عليه التطبيق.

- **spring.application.name**: يحدد اسم التطبيق، والذي يمكن استخدامه في التهيئات أو المراقبة.

هذا النظام يسمح بمرونة كبيرة في تخصيص إعدادات التطبيق بسهولة.

التكوين التلقائي

عدل

@تطبيق SpringBoot

عدل

يتضمن Spring Boot تعليقًا توضيحيًا يُعرف بـ `@SpringBootApplication`، والذي يُمكن التطبيق من تكوين مكتبات الطرف الثالث والميزات المتاحة في `classpath` تلقائيًا.

على سبيل المثال، إذا كانت هناك فئة تحتوي على التعليق التوضيحي `@SpringBootApplication`، يمكنها توسيع فئة `SpringBootServletInitializer`، مما يُتيح لها إمكانية تشغيل التطبيق كملف WAR عند نشره. هذا يسهل عملية إعداد التطبيقات ويوفر الكثير من الوقت والجهد في تكوين الإعدادات المطلوبة.

يعتبر الشرح `@SpringBootApplication` تجميعًا لثلاثة شروحات رئيسية في Spring:

1. **@SpringBootConfiguration**: تشير إلى أن الفئة تحتوي على إعدادات التكوين لتطبيق Spring Boot، مما يسمح بتعريف Beans والإعدادات الخاصة بالتطبيق.

2. **@EnableAutoConfiguration**: تُمكِّن Spring Boot من تكوين التطبيق تلقائيًا بناءً على المكتبات المتاحة في `classpath`، مما يساعد على تسريع عملية الإعداد وتجنب التكوين اليدوي.

3. **@ComponentScan**: يقوم بمسح الحزم بحثًا عن المكونات (components) الأخرى، مما يتيح Spring اكتشاف Beans وتسجيلها تلقائيًا في سياق التطبيق.

هذا التجميع يُبسط عملية تكوين التطبيقات ويسهل إعدادها وتشغيلها.

@تكوين SpringBoot

عدل

تعليق @SpringBootConfiguration هو تخصص لتعليق @Configuration الخاص بـ Spring. [18] تم وضع علامة على الفئة التي تحتوي على @SpringBootConfiguration باعتبارها فئة التكوين لتطبيق Spring Boot. [18]

@تمكين التكوين التلقائي

عدل

تعليق @EnableAutoConfiguration هو تعليق خاص بـ Spring يمكّن التكوين التلقائي لـ Spring Boot. [18]

المحرك

عدل

يحتوي Spring Boot على عدد من وحدات Spring Framework الموجودة، مما يجعله إطار عمل قويًا لتطوير التطبيقات. تشمل هذه الوحدات:

1. **Spring Core**: يوفر الأساس لإدارة Beans والتحكم في الاعتماديات (Dependency Injection).

2. **Spring MVC**: يتيح تطوير تطبيقات الويب باستخدام نمط Model-View-Controller.

3. **Spring Data**: يسهل التعامل مع قواعد البيانات عن طريق توفير واجهات بسيطة للتفاعل مع البيانات.

4. **Spring Security**: يوفر آليات أمان متعددة لتأمين التطبيقات، مثل المصادقة وتفويض الوصول.

5. **Spring AOP**: يدعم البرمجة الموجهة للجوانب، مما يساعد في فصل الجوانب الثانوية مثل السجل (logging) والتحكم في المعاملات.

تسمح هذه الوحدات لتطبيقات Spring Boot بالاستفادة من الميزات المختلفة لـ Spring Framework، مما يُعزز من كفاءتها ومرونتها.

التكامل مع وحدات Spring Framework

عدل

يحتوي Spring Boot على عدد من وحدات Spring Framework الموجودة.

الأمن الربيعي

عدل

يتكامل Spring Boot مع Spring Security Module. الطريقة الأبسط لدمج Spring Boot مع Spring Security هي إعلان التبعية المبدئية في ملف تكوين البناء. [19]

إذا تم استخدام Maven كأداة بناء، فيمكن تحديد التبعية ذات معرف القطعة spring-boot-starter-security في ملف تكوين pom.xml . [19]

خوادم التطبيقات

عدل

بشكل افتراضي، يوفر Spring boot خوادم ويب مضمنة (مثل TomCat) جاهزة للاستخدام. [20] ومع ذلك، يمكن أيضًا نشر Spring Boot كملف WAR على خادم تطبيقات WildFly مستقل. [21]

إذا تم استخدام Maven كأداة بناء، فهناك wildfly-maven-plugin plugin يسمح بالنشر التلقائي لملف WAR الناتج. [21]

المراجع

عدل
  1. ^ وصلة مرجع: https://spring.io/blog/2014/04/01/spring-boot-1-0-ga-released. الوصول: 28 يونيو 2024.
  2. ^ "Release 3.4.0". 21 نوفمبر 2024. اطلع عليه بتاريخ 2024-11-30.
  3. ^ "Spring Boot Tutorial - Learn Spring Boot". GeeksforGeeks (بالإنجليزية الأمريكية). 8 May 2023. Archived from the original on 2024-07-04. Retrieved 2024-04-05.
  4. ^ ا ب Walls 2016، صفحة vii، §foreword.
  5. ^ Walls 2016، صفحات 37-48، §2.3.
  6. ^ Walls 2016، صفحة 48، §2.4.
  7. ^ Deinum & Cosmina 2021، صفحات 21-22، §2 Spring Framework Fundamentals.
  8. ^ "Spring Boot Tutorial - Learn Spring Boot". GeeksforGeeks (بالإنجليزية الأمريكية). 8 May 2023. Archived from the original on 2024-07-04. Retrieved 2024-04-05.
  9. ^ "Spring Boot Console Application". Baeldung. 8 يناير 2024. اطلع عليه بتاريخ 2024-09-20.{{استشهاد ويب}}: صيانة الاستشهاد: url-status (link)
  10. ^ ا ب Walls 2016، صفحة 7، §1.1.3.
  11. ^ ا ب Walls 2016، صفحة x، §Preface.
  12. ^ Musib 2022، صفحة 9، §1.2.1 Maven vs Gradle.
  13. ^ Walls 2016، صفحات 4-5، §1.1.2.
  14. ^ ا ب Walls 2016، صفحات 124-139، §7.
  15. ^ Walls 2016، صفحات 49-69، §3.1-§3.2.3.
  16. ^ "Spring Boot Tutorial - Learn Spring Boot". GeeksforGeeks (بالإنجليزية الأمريكية). 8 May 2023. Archived from the original on 2024-07-04. Retrieved 2024-04-05."Spring Boot Tutorial - Learn Spring Boot".
  17. ^ "Language Support". Spring Framework.
  18. ^ ا ب ج Walls 2019، صفحات 11-17، §1.2.2 Examining the Spring project structure.
  19. ^ ا ب Musib 2022، صفحات 187-192، §5.2.1 Configuring Spring Boot Actuator in a Spring Boot application.
  20. ^ Musib 2022، صفحات 7-8، §1.1.4 Spring Boot components.
  21. ^ ا ب Musib 2022، صفحات 406-417، §9.2 Deploying Spring Boot application as WAR in the wildfly application server.