انتقل إلى المحتوى الرئيسي

MODULE 2 - الخطوات الأولى مع Spring Boot

أهداف الوحدة​

ستمكنك هذه الوحدة من:

  • إتقان استخدام Spring Initializr لإنشاء المشاريع
  • فهم هيكل مشروع Spring Boot
  • إعداد بيئة التطوير الخاصة بك (Visual Studio Code)
  • إنشاء أول تطبيق REST
  • استخدام التعليقات التوضيحية الأساسية لـ Spring Boot

محتوى الوحدة​

النظرية​

الفصل 1: Spring Initializr​

  • ما هو Spring Initializr
  • إعداد المشروع (Maven، Java، Spring Boot)
  • البيانات الوصفية والمعلمات
  • إدارة التبعيات وstarters
  • إنشاء واستيراد المشروع
  • البدائل (CLI، API، IDE)

الفصل 2: هيكل مشروع Spring Boot​

  • شجرة كاملة للمشروع
  • دور ملف pom.xml
  • تنظيم الحزم (Controller، Service، Repository، Model)
  • أدلة resources (static، templates)
  • الإعداد مع application.properties/yml
  • اتفاقيات التسمية

الفصل 3: الإعداد​

  • ملفات application.properties وapplication.yml
  • خصائص Spring Boot الشائعة
  • إعداد قاعدة البيانات
  • إعداد السجلات
  • خصائص مخصصة مع @Value و@ConfigurationProperties
  • إدارة ملفات التعريف (dev، test، prod)
  • المتغيرات البيئية والأمان

الفصل 4: التعليقات التوضيحية الأساسية​

  • @SpringBootApplication ومكوناته
  • تعليقات توضيحية للنوع: @Component, @Service, @Repository
  • @RestController مقابل @Controller
  • تعليقات توضيحية لتوجيه HTTP: @GetMapping, @PostMapping, @PutMapping, @DeleteMapping
  • @RequestParam, @PathVariable, @RequestBody
  • حقن التبعيات مع @Autowired

الفصل 5: مقدمة إلى Repositories​

  • ما هو Repository في Spring Data JPA
  • الطرق الأساسية الأربعة الموروثة من JpaRepository
  • اتفاقيات التسمية البسيطة: findBy، And، Or
  • إنشاء كيان JPA
  • هيكل كامل Controller → Service → Repository
  • أمثلة عملية مع الكيان User
  • ملاحظة: محتوى مبسط للمبتدئين. سيتم تناول المفاهيم المتقدمة (الانضمامات، JPQL، @Query) في الوحدة 6

الأعمال التطبيقية​

TP2.1: تطبيق Greeting مع VS Code​

الهدف: إنشاء أول تطبيق Spring Boot REST

المحتوى:

  • إعداد Spring Initializr
  • استيراد المشروع في Visual Studio Code
  • إنشاء وحدة تحكم REST بسيطة
  • اختبار وتصحيح الأخطاء
  • حل المشاكل الشائعة

المدة المقدرة: 2-3 ساعات

المتطلبات المسبقة: JDK 17+، Maven، VS Code مع إضافات Java

المستوى: مبتدئ


TP2.2: قاعدة بيانات H2 - الذاكرة والاستمرارية​

الهدف: إتقان H2 في وضع الذاكرة ووضع الملف المستمر

المحتوى:

  • الجزء 1: H2 في الذاكرة (بيانات مؤقتة)
  • الجزء 2: H2 المستمرة (بيانات على القرص)
  • الجزء 3: إدارة متقدمة مع إعادة تسمية الملفات
  • الفروقات بين الأوضاع
  • إعداد schema.sql وdata.sql
  • وحدة التحكم H2
  • 4 تمارين عملية
  • استخدام الطرق الأساسية الأربعة لـ JPA (findById، findAll، save، deleteById)

المدة المقدرة: 3-4 ساعات

المتطلبات المسبقة: إكمال TP2.1، قراءة الفصل 5 (Repositories)

المستوى: مبتدئ


📚 ملاحظة هامة: إعادة هيكلة تعليمية​

أين هي TP3 وTP4؟​

إذا كنت تبحث عن الأعمال التطبيقية المتقدمة، فقد تم نقلها إلى الوحدات المناسبة لتحسين التقدم التعليمي:

TP3.1: هيكل CRUD → MODULE 3​

  • الاسم الجديد: TP3.1 من الوحدة 3
  • السبب: يستخدم مفاهيم متقدمة (التحقق، ResponseEntity، إدارة الأخطاء)
  • المتطلبات المسبقة المضافة:
    • الفصل 1: طبقة الخدمة بالتفصيل
    • الفصل 2: التحقق من البيانات
    • الفصل 3: إدارة الأخطاء HTTP
    • الفصل 4: هيكل ثلاثي الطبقات المهني

TP4.1: PostgreSQL → MODULE 4​

  • الاسم الجديد: TP4.1 من الوحدة 4
  • السبب: يستخدم مفاهيم الإنتاج (PostgreSQL، Lombok، Jakarta، استراتيجيات DDL)
  • المتطلبات المسبقة المضافة:
    • الفصل 1: PostgreSQL - التثبيت والإعداد
    • الفصل 2: Jakarta مقابل Javax Persistence
    • الفصل 3: Hibernate واستراتيجيات DDL
    • الفصل 4: Lombok

لماذا هذا التغيير؟​

تحليل تعليمي:

TP3 (سابقًا هنا): 60% من المفاهيم غير المعلمة
TP4 (سابقًا هنا): 80% من المفاهيم غير المعلمة

التأثير الإيجابي:

  • ✅ كل عمل تطبيقي يحتوي الآن على كل النظرية اللازمة قبل البدء فيه
  • ✅ تقليل الإحباط والارتباك
  • ✅ تعلم أكثر تدرجًا وفعالية
  • ✅ إعداد أفضل للإنتاج

التقدم الموصى به​

MODULE 2 (الأساسيات)
├── 5 فصول نظرية
└── 2 أعمال تطبيقية (TP2.1، TP2.2)
↓
MODULE 3 (هيكل قوي)
├── 4 فصول نظرية
└── 1 عمل تطبيقي (هيكل CRUD) ← العمل التطبيقي السابق TP3 من الوحدة 2
↓
MODULE 4 (الإنتاج)
├── 4 فصول نظرية
└── 1 عمل تطبيقي (PostgreSQL) ← العمل التطبيقي السابق TP4 من الوحدة 2

المتطلبات التقنية​

قبل البدء في هذه الوحدة، تأكد من أن لديك:

البرامج المطلوبة​

  1. JDK 17 أو أعلى

  2. Visual Studio Code

  3. إضافات VS Code:

    • Extension Pack for Java (Microsoft)
    • Spring Boot Extension Pack (VMware)
    • Maven for Java (Microsoft)
  4. Maven 3.9+

التحقق من التثبيت​

# التحقق من Java
java -version

# التحقق من Maven
mvn -version

المدة المقدرة​

النظرية: 6-8 ساعات (5 فصول)
التطبيق: 5-7 ساعات (TP2.1، TP2.2)
الإجمالي: 11-15 ساعة (2-3 جلسات من 4-6 ساعات)

ملاحظة: تم تبسيط الوحدة 2 للتركيز على الأساسيات. الأعمال التطبيقية المتقدمة (هيكل CRUD، PostgreSQL) موجودة الآن في الوحدات 3 و4 مع النظرية المناسبة.


الموارد الإضافية​

الوثائق الرسمية​

الدروس الموصى بها​


معايير النجاح​

في نهاية هذه الوحدة، يجب أن تكون قادرًا على:

  • ✅ إنشاء مشروع Spring Boot باستخدام Spring Initializr
  • ✅ إعداد Visual Studio Code لتطوير Java/Spring
  • ✅ إنشاء واختبار وحدة تحكم REST بسيطة
  • ✅ فهم هيكل مشروع Spring Boot
  • ✅ إعداد application.properties وapplication.yml
  • ✅ استخدام التعليقات التوضيحية الأساسية (@RestController, @Service, @Repository)
  • ✅ إنشاء كيانات JPA بسيطة
  • ✅ استخدام الطرق الأساسية الأربعة لـ CRUD (findById، findAll، save، deleteById)
  • ✅ إنشاء طرق بحث بسيطة (findBy، And، Or)
  • ✅ العمل مع H2 في وضع الذاكرة والمستمر

ما لا يُفترض أن تتقنه بعد (سيكون في الوحدات التالية):

  • ❌ هيكل ثلاثي الطبقات الكامل (الوحدة 3)
  • ❌ التحقق المتقدم (الوحدة 3)
  • ❌ إدارة الأخطاء HTTP (الوحدة 3)
  • ❌ PostgreSQL في الإنتاج (الوحدة 4)
  • ❌ Lombok (الوحدة 4)
  • ❌ الانضمامات JPA (الوحدة 6)

الخطوات التالية​

بمجرد إكمال هذه الوحدة، ستكون جاهزًا لـ:

  • الوحدة 3: هيكل الطبقات وCRUD الكامل

    • طبقة الخدمة بعمق
    • التحقق من البيانات (@Valid, @NotNull, @Size)، إلخ.
    • إدارة الأخطاء HTTP (ResponseEntity، رموز الحالة)
    • هيكل ثلاثي الطبقات المهني
    • TP3.1: هيكل CRUD (تم نقله لتحسين التقدم)
  • الوحدة 4: قواعد البيانات في الإنتاج

    • PostgreSQL - التثبيت والإعداد
    • Jakarta مقابل Javax Persistence
    • Hibernate واستراتيجيات DDL
    • Lombok لتقليل الكود
    • TP4.1: ترحيل PostgreSQL (تم نقله لتحسين التقدم)
  • الوحدة 5: Spring Core - IoC وDI المتقدم

  • الوحدة 6: Spring Data JPA المتقدم (الانضمامات، JPQL، التحسين)

📚 لماذا هذه إعادة التنظيم؟​

الهيكل القديم:

  • كانت الوحدة 2 تحتوي على 4 أعمال تطبيقية منها 2 متقدمة جدًا
  • TP3.1 وTP4.1 كانا يستخدمان مفاهيم غير معلمة
  • إحباط الطلاب

الهيكل الجديد:

  • ✅ الوحدة 2: الأساسيات فقط (TP2.1، TP2.2)
  • ✅ الوحدة 3: CRUD مع النظرية الكاملة (TP3.1)
  • ✅ الوحدة 4: الإنتاج مع النظرية الكاملة (TP4.1)

💡 النتيجة: كل عمل تطبيقي يحتوي الآن على كل النظرية اللازمة قبل البدء فيه!


ابدأ مع TP2.1