في الشهر الماضي ، قدمت Trisha Gee (JetBrains) في SpringOne عرضًا لإنشاء تطبيق لسعر الأسهم في الوقت الفعلي باستخدام Spring Boot و Kotlin و JavaFX. تم تسجيل العرض التوضيحي المباشر وهو متاح
في فيديو مدته 70 دقيقة .
في 18 كانون الأول (ديسمبر) ، أكملت Trisha المنشور على
dzone.com حول البرنامج التعليمي التفاعلي لـ Spring Boot استنادًا إلى الفيديو ، كسلسلة من مقاطع الفيديو القصيرة مع منشور مدونة مصاحب يشرح كل خطوة ببطء أكبر
وبمزيد من التفاصيل.
كان لدي فكرة لترجمة هذا البرنامج التعليمي إلى الروسية. ومع ذلك ، أجاب تريشا بأدب مع استفساري حول هذا:
"اسمحوا لي أن تحقق مع منظمي. أرغب في ترجمتها ، لكن قد يكون لدينا طريقة مفضلة لترجمة الأشياء. "
لذلك قررت أن أقتصر على نظرة عامة على هذا البرنامج التعليمي ، والذي يتضمن سلسلة الدروس التالية:
- بناء خدمة Kotlin REST
- عميل REST للتيارات التفاعلية
- تطبيق JavaFX Spring Boot
- مخطط خط JavaFX
- التكوين التلقائي للفاصوليا المشتركة
- عرض البيانات التفاعلية
- الاشتراك المشتركين متعددة
- خادم Kotlin RSocket
- جافا RSocket العميل
- ملامح الربيع للتبديل العملاء
البرنامج التعليمي عبارة عن سلسلة من الدروس التي سيتم فيها إنشاء تطبيق Spring Boot كامل مع واجهة Kotlin الداخلية وعميل Java وواجهة مستخدم JavaFX.
الجزء 1. إنشاء خدمة REST على Kotlin
يصف
الجزء الأول من البرنامج التعليمي كيفية إنشاء تطبيق Spring Boot على Kotlin ، والذي يعد بمثابة جانب الخادم للتطبيق. سيتم إنشاء خدمة REST التفاعلية ، والتي يمكنك الاتصال بها في الأجزاء التالية من الدليل.
يحتوي مدخل المدونة هذا على
مقطع فيديو يعرض عملية خطوة بخطوة ودليلًا نصيًا (مقتبس من نسخة الفيديو) لأولئك الذين يفضلون التنسيق المكتوب.
يتضمن هذا الجزء من البرنامج التعليمي الخطوات التالية:
- إنشاء مشروع خدمة التمهيد في الربيع
- هيكل مشروع Spring Boot
- إنشاء وحدة تحكم REST
- إنشاء فئة بيانات لأسعار الأسهم
- توليد الأسعار والعودة
- إطلاق التطبيق
بعد الانتهاء من هذه الخطوات في الجزء 1 من البرنامج التعليمي ، سيتم إنشاء تطبيق Kotlin Spring Boot البسيط الذي يستخدم Reactive Streams لإصدار سعر سهم تم إنشاؤه عشوائيًا مرة واحدة في الثانية.
يتوفر الرمز الكامل للجزء 1 من البرنامج التعليمي على جيثب .
الجزء 2. راحة العميل للتدفقات التفاعلية
يوضح
الجزء 2 من البرنامج التعليمي كيفية إنشاء عميل Java تفاعلي في Spring يتصل بخدمة REST تبث أسعار الأسهم مرة واحدة في الثانية. سيتم استخدام هذا العميل في الأقسام التالية من الدليل. أثناء التطوير ، سيتم استخدام عملية تستند إلى TDD لإنشاء العميل واختباره.
يحتوي
مدخل المدونة هذا على
مقطع فيديو يعرض عملية خطوة بخطوة ودليلًا نصيًا (مقتبس من نسخة الفيديو) لأولئك الذين يفضلون التنسيق المكتوب.
يتضمن هذا الجزء من البرنامج التعليمي الخطوات التالية:
- إنشاء مشروع لعميل
- خلق فئة العملاء
- إنشاء اختبار العملاء
- إنشاء طريقة سعر قاعدة العملاء
- إنشاء فئة لعقد أسعار الأسهم
- إضافة تأكيدات إلى الاختبار
- قم بتوصيل العميل بخدمة REST
- تشغيل اختبار التكامل
- تأكيدات أكثر شمولية في اختبار التكامل
ليس اختبار التطبيقات التفاعلية مهارة سهلة ، وهناك بالتأكيد طرق أفضل بكثير للقيام بذلك مقارنة بهذا المثال البسيط. ومع ذلك ، تم استخدام اختبار التكامل بنجاح لتحديد API ووظائف العميل لأسعار الأسهم.
يتصل هذا العميل بنقطة النهاية ، التي تنشئ الأحداث المرسلة من قبل الخادم وتقوم بإرجاع دفق من كائنات StockPrice التي يمكن استخدامها بواسطة خدمة أخرى. سيتم عرض كيفية القيام بذلك في مقاطع الفيديو التالية من هذه السلسلة.
رمز الجزء 2 الكامل متاح في جيثب .
الجزء 3. JavaFX الربيع التمهيد التطبيق
يوضح العرض
التوضيحي الثالث كيفية إنشاء تطبيق JavaFX يتم تشغيله وإدارته من خلال Spring Boot لاستخدام ميزات Spring ، مثل Inversion of Control و Dependency Injection ، في تطبيق JavaFX الخاص بنا.
يحتوي مدخل المدونة هذا أيضًا على
مقطع فيديو يعرض عملية خطوة بخطوة ودليلًا نصيًا (مقتبس من نسخة الفيديو) لأولئك الذين يفضلون التنسيق المكتوب.
يتضمن هذا الجزء من البرنامج التعليمي الخطوات التالية:
- إعداد الوحدة
- تغيير فئة التطبيق التمهيد الربيع
- تحرير إعدادات التمهيد الربيع
- إنشاء فئة تطبيق JavaFX
- إعداد فئة تطبيق إقلاع الربيع
- نشر الأحداث من خلال سياق التطبيق
- إنشاء سياق التطبيق
- إغلاق سياق التطبيق
- الاستماع لأحداث التطبيق
بعد إكمال الخطوات 3 من البرنامج التعليمي ، سيتم إنشاء نافذة تطبيق JavaFX الرئيسية (المرحلة - راجع
الجزء 2 من البرنامج التعليمي JavaFX ) ، والذي يسمح لك بتكوين واجهة المستخدم. بعد ذلك ، يمكنك تشغيل تطبيق StockUIA ونرى أنه يبدأ بنجاح كتطبيق Spring Boot. كما يطلق عملية جافا تعرض واجهة المستخدم إذا أنشأناها. في الوقت الحالي ، تم إنشاء تطبيق JavaFX بنجاح ، والذي يتم تشغيله وإدارته باستخدام Spring ويسمح لك باستخدام الوظائف المريحة لأي تطبيق Spring.
يتوفر
كود تعليمي كامل مكون من 3 أجزاء على GitHub.
الجزء 4. مخطط خط JavaFX
في
هذه الخطوة من البرنامج التعليمي ، سنرى كيفية إنشاء تطبيق JavaFX يعرض مخططًا خطيًا. يستخدم هذا التطبيق Spring لوظائف مهمة مثل قلب التحكم.
يحتوي مدخل المدونة هذا على
مقطع فيديو يعرض عملية خطوة بخطوة ودليلًا نصيًا (مقتبس من نسخة الفيديو) لأولئك الذين يفضلون التنسيق المكتوب.
يتضمن هذا الجزء من البرنامج التعليمي الخطوات التالية:
- إنشاء مشهد (مشهد - راجع الجزء 2 من JavaFX Tutorial )
- باستخدام FXML
- إنشاء ملف FXML
- تعيين رأس التطبيق
- إعداد رأس التطبيق من application.properties
- الحصول على وحدات تحكم JavaFX من الربيع
- إنشاء مخطط خطي
بعد الانتهاء من الخطوات المذكورة أعلاه ، سيقوم الجزء 4 من البرنامج التعليمي بإنشاء تطبيق JavaFX. بعد إطلاق التطبيق ، يجب أن نرى المخطط التفصيلي للخط الموضح في نافذتنا ، مع أرقام للسعر على طول المحور Y والوقت على طول المحور X.

تم إنشاء تطبيق JavaFX مدمج في Spring Boot يستخدم FXML للإعلان عما يجب عرضه في العرض.
يتوفر
الرمز الكامل
لهذا الجزء من البرنامج التعليمي على GitHub.
الجزء 5. التكوين التلقائي للفاصوليا المشتركة
يوضح الدرس 5 كيفية استخدام حبوب الربيع من وحدة نمطية في وحدة نمطية أخرى باستخدام التكوين التلقائي.
يحتوي مدخل المدونة هذا أيضًا على
مقطع فيديو يعرض عملية خطوة بخطوة ودليلًا نصيًا (مقتبس من نسخة الفيديو) لأولئك الذين يفضلون التنسيق المكتوب.
في الدرس الأخير ، تم إنشاء تطبيق JavaFX Spring Boot أظهر مخططًا فارغًا للخط. في هذا الفيديو ، سنرى كيفية تكوين التكوين التلقائي لفاصوليا الربيع حتى نتمكن من استخدام مكونات الفاصوليا المحددة في وحدة مخزون العميل في وحدة مخزون الأسهم.
يتضمن هذا الجزء من البرنامج التعليمي الخطوات التالية:
- مضيفا الاعتماد على وحدة أخرى
- إنشاء WebClientStockClient Bean
- قم بتشغيل التكوين التلقائي
هذا جزء صغير جدًا من البرنامج التعليمي ، ولكنه يسمح لنا بإنشاء وحدات يمكن إعادة استخدامها بواسطة تطبيقات Spring Boot المختلفة. الآن يمكننا استخدام العميل في ChartController للاتصال بخدمة الأسعار وبدء عرض الأسعار في الوقت الحقيقي على مخطط خطي.
يتوفر
الرمز الكامل
لهذا الجزء على GitHub.
الجزء 6. رد الفعل عرض البيانات
يناقش
هذا الدرس توصيل مخططات JavaFX بخدمة Kotlin Spring Boot الخاصة بنا لعرض الأسعار في الوقت الفعلي. يحتوي مدخل المدونة هذا على
مقطع فيديو يعرض عملية خطوة بخطوة ودليلًا نصيًا (مقتبس من نسخة الفيديو) لأولئك الذين يفضلون التنسيق المكتوب.
في
الجزء الرابع ، تم إنشاء تطبيق JavaFX Spring Boot ، والذي يعرض مخططًا فارغًا للسطر. يستخدم الإصدار الأخير (
الجزء الخامس ) WebClientStockClient للاتصال بخدمة السعر. في هذا الجزء ، تم الحصول على مخطط خطي يوضح الأسعار القادمة من خدمة Kotlin Spring Boot في الوقت الفعلي.
يتضمن هذا الجزء من البرنامج التعليمي الخطوات التالية:
- تكوين بيانات المخطط
- اشترك في بيانات التسعير
- عرض بيانات الأسعار
- إطلاق التطبيق
- عرض اسم الشخصية
- تنظيف الكود
أنشأت بضعة أسطر من التعليمات البرمجية في هذا الجزء من البرنامج التعليمي تطبيق JavaFX يستخدم SpringClient للاتصال بخدمة Spring Boot والاشتراك في دفق سعر تفاعلي ورسم الأسعار على مخطط خطي في الوقت الفعلي.
يتوفر
الرمز الكامل
لهذا الجزء على GitHub.
الجزء 7. الاشتراك في العديد من المشتركين
في
الجزء السابق ، اشتركنا في مخطط خط JavaFX للأسعار من خلال خدمة Reactive Spring Boot الخاصة بنا وعرضها في الوقت الفعلي.
في
هذا الدرس ، سيتم الانتهاء من وضع جدول زمني للتحديث في الوقت الفعلي لإظهار الأسعار لأكثر من سهم واحد ، الأمر الذي يتطلب أكثر من مستهلك واحد للاشتراك في جدول أسعارنا التفاعلي.
على المدونة ، ستجد
مقطع فيديو يعرض العملية خطوة بخطوة ووصفًا نصيًا (مقتبس من نسخة الفيديو) لأولئك الذين يفضلون التنسيق المكتوب.
يتضمن هذا الجزء من البرنامج التعليمي الخطوات التالية:
- نحن ندرك أسعار المشتركين
- نقل الرسوم إلى مشترك السعر
- إضافة المشترك الثاني
- تنظيف الكود
- إعادة هيكلة المكافآت (ليس في الفيديو!)
في نهاية هذا الجزء من البرنامج التعليمي ، ستقوم بإنشاء تطبيق JavaFX يشترك في أكثر من سعر من خدمة Spring Boot الخاصة بنا ويعرض كل مجموعة من بيانات أسعار الوقت الفعلي في عدة سلاسل على مخطط خطي.
يتوفر
الرمز الكامل
لهذا الجزء على GitHub.
الجزء 8. Kotlin RSocket الخادم
في
هذا الدرس ، ستتم إضافة خدمة داخلية جديدة إلى Kotlin ، والتي ترسل الأسعار عبر RSocket ، وهو بروتوكول للتدفقات التفاعلية. يحتوي مدخل المدونة هذا على
مقطع فيديو يعرض عملية خطوة بخطوة ودليلًا نصيًا (مقتبس من نسخة الفيديو) لأولئك الذين يفضلون التنسيق المكتوب.
في هذه المرحلة من سلسلة البرنامج التعليمي ، تم إنشاء تطبيق شامل بنجاح ينشر الأسعار من خدمة Kotlin Spring Boot ويعرضها على مخطط خط JavaFX. يستخدم بروتوكول HTTP لإرسال الأحداث إلى الخادم. ومع ذلك ، نظرًا لأن هذا تطبيق تفاعلي ، فيمكننا اختيار البروتوكول الأنسب لبث البيانات.
في هذا الجزء من البرنامج التعليمي ، سيتم إنشاء خدمة تنتج بيانات السعر باستخدام بروتوكول RSocket.
يتضمن هذا الجزء من البرنامج التعليمي الخطوات التالية:
- إنشاء وحدة تحكم RSocket
- نحن ندرك خدمة السعر
- ترقية الكود الشائع إلى PriceService
- تقليل الازدواجية رمز
- إعادة بيع لخفض Boilerplate
- إعدادات عرض الرسالة
- تكوين خادم RSocket
في نهاية هذا الجزء من البرنامج التعليمي ، سيطلق المنفذ 7000 خدمة تسعير جاهزة لتوصيل عميل لتلقي أسعار الأسهم من خلال RSocket.
شفرة المصدر الكاملة
لهذا الجزء متاحة على جيثب.
الجزء 9. Java RSocket Client
في
هذا الدرس ، سنضيف عميل RSocket يمكنه الاتصال بخادم
RSocket الذي
أنشأناه في الدرس الأخير .
يحتوي مدخل المدونة هذا على
مقطع فيديو يعرض عملية خطوة بخطوة ودليلًا نصيًا (مقتبس من نسخة الفيديو) لأولئك الذين يفضلون التنسيق المكتوب.
حاليًا ، لدينا تطبيق يعمل من البداية إلى النهاية باستخدام Spring's
WebClient . في
الدرس الأخير ، قدمنا خادم RSocket الجديد ، والذي يعمل حاليًا ، وفي هذا الدرس سنرى كيفية إنشاء عميل للاتصال به.
يتضمن هذا الجزء من البرنامج التعليمي الخطوات التالية:
- إنشاء اختبار التكامل
- إنشاء عميل الأسهم RSocket
- تقديم واجهة StockClient
- تنفيذ اتصال RSocket
- إنشاء RSocketRequester
- اختبار النجاح التكامل
- اختبار مع StepVerifier
- إضافة الاستعادة واستراتيجيات معالجة الأخطاء
في نهاية هذا الجزء من البرنامج التعليمي ، سيكون لدينا خادم RSocket يولد أسعار الأسهم ، وعميل RSocket يمكنه الاتصال به ورؤية هذه الأسعار. في الدرس التالي ، سنرى كيفية الانتقال من استخدام WebClientStockClient إلى RSocketStockClient الجديد.
شفرة المصدر الكاملة
لهذا الجزء متاحة على جيثب.
الجزء 10. ملامح الربيع للتبديل العملاء
يستخدم
الجزء الأخير من البرنامج التعليمي إعداد Spring Profiles بحيث يمكن للتطبيق تحديد أي من عميلينا (الأحداث التي يرسلها الخادم عبر WebClient أو RSocket) لاستخدامه للاتصال بخدمة تسعير Kotlin Spring Boot الخاصة بنا.
كالعادة ، يحتوي منشور المدونة هذا على
مقطع فيديو يعرض عملية خطوة بخطوة ودليلًا نصيًا (مقتبس من نسخة الفيديو) لأولئك الذين يفضلون التنسيق المكتوب.
في هذه المرحلة من سلسلة البرنامج التعليمي ، لدينا عميل RSocket يسمح لنا بالاتصال بخادم RSocket الخاص بنا ، ونريد استخدام هذه الميزات من تطبيق JavaFX الخاص بنا.
يتضمن هذا الجزء من البرنامج التعليمي الخطوات التالية:
- إنشاء فول RSocketStockClient
- اختيار الفاصوليا للاستخدام
- اختيار ملف تعريف نشط
- تسجيل للتصحيح
- الحصول على الأسعار من خلال RSocket
في نهاية هذا الجزء من البرنامج التعليمي ، سيكون لدينا تطبيق كامل لخريطة خط JavaFX شامل يشترك في تدفق الأسعار التفاعلي من تطبيق Kotlin Spring Boot. بالإضافة إلى ذلك ، يمكن تكوين التطبيق لتلقي هذه الأسعار إما من خلال الأحداث المرسلة من قبل الخادم أو من خلال بروتوكول RSocket الجديد.
الرمز الكامل متاح على جيثب:
مشروع العميل (الأسهم العميل و الأسهم وحدات واجهة المستخدم).
مشروع الخادم (تطبيق Kotlin Spring Boot)
قراءة إضافية
تفاعلي تمامًا: اللعب مع Spring و Kotlin و JavaFX معًا [روابط]Kotlin Microservice مع الربيع التمهيد تعليميالبرمجة التفاعلية في الربيع