المرحلة 4 – الإطارات وتطبيقات الويب (3-4 أشهر)
Spring Boot، Spring Core، و Spring Data JPA
- Spring Core: حقن التبعيات (
@Bean
,@Autowired
)، حاوية IoC. - Spring Boot: الإعداد التلقائي، starters (
spring-boot-starter-web
,spring-boot-starter-data-jpa
)،application.yml
. - Spring Data JPA: المستودعات (
CrudRepository
,JpaRepository
)، الاستعلامات باستخدام@Query
، التصفح. - مثال: إنشاء endpoints REST لإدارة المهام (CRUD) في تطبيق المهام.
Spring Security (JWT, OAuth2)
- المفاهيم: المصادقة، التفويض، مرشحات الأمان.
- JWT: إنشاء والتحقق من tokens، استخدام
JwtAuthenticationFilter
. - OAuth2: تهيئة Resource Server، التكامل مع مزود (مثل Google).
- مثال: حماية endpoints المهام باستخدام JWT و roles (
ADMIN
,USER
).
الاختبارات الوحدية والتكاملية
- Unit tests: JUnit 5، Mockito (
@Mock
,@InjectMocks
)، اختبار المنطق التجاري. - Integration tests:
@SpringBootTest
,@WebMvcTest
, قاعدة بيانات H2 للاختبار. - Testcontainers: الاختبار باستخدام PostgreSQL في حاويات Docker.
- مثال: اختبار الخدمات و endpoints تطبيق المهام.
RESTful APIs وتوثيق باستخدام Swagger
- REST: طرق HTTP، أكواد الحالة، مبادئ RESTful.
- Spring REST:
@RestController
,@RequestMapping
,@PathVariable
. - Swagger: تهيئة springdoc-openapi، التعليق باستخدام
@Operation
. - مثال: توثيق endpoints تطبيق المهام باستخدام Swagger UI.
مقدمة إلى GraphQL
- المفاهيم: Queries، mutations، schema.
- Spring Boot مع GraphQL: الإعداد باستخدام spring-boot-starter-graphql.
- مثال: إنشاء query GraphQL لسرد المهام حسب الحالة.
التكامل الأمامي الأساسي
- Thymeleaf: قوالب لعرض صفحات HTML مع Spring Boot.
- مثال: إنشاء واجهة ويب بسيطة لعرض وإنشاء المهام.
أدوات البناء: Maven و Gradle
- Maven: هيكلية
pom.xml
، التبعيات، الإضافات. - Gradle: ملف
build.gradle
، المهام، إدارة التبعيات. - مثال: تهيئة تطبيق المهام باستخدام Maven و Gradle.
نشر المشروع
- المنصات: Railway، Heroku، AWS (Elastic Beanstalk).
- الخطوات: التعبئة كـ JAR، تهيئة CI/CD باستخدام GitHub Actions.
- مثال: نشر تطبيق المهام على Railway مع PostgreSQL.
المشروع النهائي
نظام إدارة المهام
- قاعدة البيانات: جداول Task
(العنوان، الوصف، الحالة) و User
(علاقة 1:N).
- Java: API REST مع Spring Boot، Spring Data JPA لـ CRUD.
- الأمان: المصادقة باستخدام JWT، roles (ADMIN
, USER
).
- الاختبارات: اختبارات وحدية (الخدمات) واختبارات تكاملية (endpoints باستخدام Testcontainers).
- التوثيق: Swagger UI مع وصف endpoints.
- اختياري: إضافة query GraphQL لسرد المهام وواجهة Thymeleaf للتفاعل.
- Git: commit لكل ميزة (مثال: feature/rest-api
, feature/security
).
- النشر: على GitHub مع README (الإعداد، endpoints، النشر).