Nrich هي مكتبة Java تم تطويرها في CROZ والغرض منها هو جعل تطوير التطبيقات على JVM أسهل قليلاً. تم إنشاؤه من خلال الجمع بين الوحدات التي كانت مفيدة في مشاريع متعددة في مكتبة مشتركة. تعتمد المكتبة على Spring Framework، وعلى هذا النحو توفر مشغلات Spring Boot لمعظم الوحدات النمطية لتسهيل عملية التكوين.
تتكون معظم مجموعات الوظائف من وحدات متعددة:
api
ويحتوي على فئات تمثل واجهة برمجة التطبيقات للوحدة (واجهات الخدمة، المعلمات، أنواع الإرجاع...)spring-boot-starter
ويحتوي على التكوين التلقائي لـ Spring Boot للوحدة المحددةفي بيئة Spring Boot، يجب إضافة وحدات بداية التمهيد الربيعي فقط كتبعيات.
يحتوي الجدول التالي على إصدارات غنية مع الحد الأدنى المقابل من إصدار Java وSpring.
نسخة نريتش | نسخة جافا | نسخة التمهيد الربيع |
---|---|---|
1.0.x - 1.1.x | 1.8 | 2.3.3.الإصدار |
1.2.x | 1.8 | 2.6.4 |
1.3.x | 1.8 | 2.6.6 |
1.4.x | 1.8 | 2.6.6 |
1.5.x - 1.7.x | 1.8 | 2.7.4 |
1.8.x | 1.8 | 2.7.7 |
2.0.0 | 17 | 3.1.3 |
يتكون Nrich من الوحدات التالية:
يوفر تبعيات مُدارة لجميع الوحدات الغنية بالإضافة إلى المكتبات المستخدمة داخل تلك الوحدات التي لا تغطيها تبعيات Spring Boot.
تحتوي هذه الوحدة على فئات شائعة يتم استخدامها في جميع أنحاء المكتبة.
تحقق الوحدة تشفيرًا وفك تشفير أسهل من خلال القدرة على تشفير نتائج الطريقة وفك تشفير وسائط الطريقة. يمكن تمييز الطرق التي يجب تشفير نتائجها و/أو فك تشفير الوسائط باستخدام التعليقات التوضيحية أو كخصائص محددة في ملف الخاصية (مثل application.yml
).
يوفر إنشاء تقارير Excel بشكل أسهل من البيانات والقوالب المقدمة. يستخدم التنفيذ الافتراضي مكتبة Apache POI
ولكنه يحاول تبسيط الاستخدام.
يوفر تعيينًا لقيود فئة جانب الخادم لقيود النموذج من جانب العميل. الغرض من nrich-form-configuration
هو توفير مكان مركزي لتعريفات القيد. يقوم العميل بتسجيل نموذج للفئة التي تحدد القيود، والتي تمكنه من طلب معلومات للنموذج المسجل. تحتوي المعلومات المقدمة على قيود مع رسائل الخطأ الخاصة بها، والتي تم تحديدها في الفئة. ويكون العميل بعد ذلك مسؤولاً عن معالجتها وتطبيقها على النموذج.
يضبط الإعدادات الافتراضية الشائعة الاستخدام لخصائص Jackson القياسية (على سبيل المثال FAIL_ON_EMPTY_BEANS: false
) لتجنب التكرار في المشاريع. توفر الوحدة أيضًا وحدات جاكسون التي تقوم بتسلسل السلاسل الفارغة إلى قيمة فارغة وتسلسل أسماء الفئات إلى أسماء فئات مؤهلة بالكامل للفئات التي تم تعليقها باستخدام التعليق التوضيحي @Entity
أو الموجودة في حزمة محددة في قائمة معينة.
يوفر خدمة تسجيل لتسجيل الأخطاء بشكل متسق بتنسيق قياسي. يمكن لخدمة التسجيل المتوفرة أيضًا حل مستويات الإسهاب والتسجيل لكل استثناء. يتم استخدام هذه الوحدة في وحدة nrich-webmvc لتسجيل الاستثناءات ولكن يمكن استبدالها بسهولة ببعض التطبيقات المخصصة الأخرى.
مخصص لإضافة إشعارات محددة إلى الاستجابة من جانب الخادم، والتي يمكن عرضها لاحقًا على جانب العميل. يدعم nrich-notification
ثلاثة مستويات مختلفة لخطورة الإشعارات ويمكن أن يتضمن أيضًا قائمة بأخطاء التحقق من الصحة. يتم تحديد الرسائل وحلها باستخدام ميزة MessageSource
الخاصة بـ Spring.
يبسط إدارة كيانات JPA المحددة ويوفر تمثيلاً منسقًا لها بحيث يمكن لجانب العميل تفسير وإنشاء نماذج وشبكات ديناميكية. يمكن استخدام النماذج والشبكات التي تم إنشاؤها لتحرير الكيان دون تنفيذ إضافي من جانب الخادم. توفر الوحدة أيضًا طرقًا للبحث عن الكيانات وإنشائها وتحديثها وحذفها من خلال REST API.
يبسط الاستعلام عن الكيانات. يعتمد nrich-search
على الجزء العلوي من مكتبة Spring Data JPA وتم إنشاؤه كوسيلة لتبسيط إنشاء الاستعلامات لنماذج البحث المختلفة من جانب العميل. يمكن تشكيل الاستعلامات تلقائيًا من أنواع مختلفة من المدخلات، مثل فئة الاستعلام أو سلسلة تحتوي على قائمة حقول البحث. كما يتم استخدام فئة تكوين خاصة لتحديد كيفية استخدام قيم الاستعلام المقدمة في إنشاء الاستعلام.
مخصص كبديل لوظيفة Spring Security csrf. يعمل nrich-security-csrf
مع مكتبات Spring Web MVC وWebFlux. يجب على العملاء تحديد عنوان url للرمز المميز الأولي وبعد ذلك إرسال الرمز المميز الذي تم إنشاؤه مع كل طلب في رأس أو كمعلمة.
يضيف وظائف إضافية إلى Spring Boot المستخدمة في nrich.
يحتوي على فئات أدوات مساعدة للوصول إلى Spring، مثل ApplicationContextHolder
لحل ApplicationContext
من السياق الثابت.
يحتوي على قيود jakarta-validation-api
الإضافية وأدوات التحقق التي ثبت أنها شائعة الاستخدام، مثل NotNullWhen
validator.
يوفر وظائف إضافية مبنية على إطار عمل Spring Web MVC. الغرض الرئيسي هو معالجة الاستثناءات من خلال NotificationErrorHandlingRestControllerAdvice
الذي يتعامل مع الاستثناءات عن طريق تسجيلها، ثم إنشاء وإرسال إشعارات إلى جانب العميل مع وصف الاستثناء. تستخدم الوحدة وحدة الإخطار nrich لمعالجة الإشعارات والتسجيل nrich للتسجيل. يضيف nrich-webmvc
أيضًا فئات إضافية تتعامل مع الربط (أي تحويل السلسلة الفارغة إلى فارغة) وحل الإعدادات المحلية.