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
المتطلبات التقنية
قبل البدء في هذه الوحدة، تأكد من أن لديك:
البرامج المطلوبة
-
JDK 17 أو أعلى
- التحميل: Oracle JDK أو OpenJDK
-
Visual Studio Code
- التحميل: code.visualstudio.com
-
إضافات VS Code:
- Extension Pack for Java (Microsoft)
- Spring Boot Extension Pack (VMware)
- Maven for Java (Microsoft)
-
Maven 3.9+
- راجع TP1.2 : تثبيت Maven 3.9.x للحصول على دليل تثبيت كامل على Windows وmacOS وLinux
- إذا لم يتم تثبيت Java بعد، راجع أولاً TP1.1 : تثبيت Java JDK 17
- يوصى بالإصدار 3.9+ للاستقرار مع Java 17+
التحقق من التثبيت
# التحقق من 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)
💡 النتيجة: كل عمل تطبيقي يحتوي الآن على كل النظرية اللازمة قبل البدء فيه!