English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

SpringBoot DevTools

Spring Boot DevTools

قدمت Spring Boot 1.3 module آخر يُدعى Spring Boot DevTools. DevTools تعني أدوات المطور ، هدفي لهذا المodule هو محاولة وتقليل وقت التطوير عند استخدام تطبيقات Spring Boot. يقوم Spring Boot DevTools باستقبال التغييرات وإعادة تشغيل التطبيق.

يمكننا تحقيق DevTools في مشروعنا عن طريق إضافة التبعية التالية في ملف pom.xml.

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
</dependency>

أدوات Spring Boot DevTools

يقدم Spring Boot DevTools الأنظمة التالية:

قيم الخصائص الافتراضية إعادة التشغيل التلقائي LiveReload ممر الت调试 عن بُعد تحديث وإعادة تشغيل عن بُعد

قيم الخصائص الافتراضية: : قدمت Spring Boot تقنية النماذج Thymeleaf ، يحتوي على خصائص spring.thymeleaf.cache.. يحفظ ويسمح لنا بتحديث الصفحات دون إعادة تشغيل التطبيق. ولكن تعيين هذه الخصائص أثناء عملية التطوير يؤدي دائمًا إلى بعض المشاكل.

عند استخدام مودل spring-boot-devtools، لا تحتاج إلى تعيين الخصائص. يتم تعطيل التخزين المؤقت تلقائيًا أثناء عملية تطوير نماذج Thymeleaf،Freemarker وGroovy. يسمح التخزين المؤقت لنا بتحديث الصفحات دون إعادة تشغيل التطبيق. ولكن تعيين هذه الخصائص في عملية التطوير يسبب دائمًا بعض المشاكل.

ملاحظة: إذا لم نرغب في تطبيق القيم الافتراضية للخصائص على التطبيق، يمكننا تعيين configprop: spring.devtools.add-properties [] إلى false في ملف application.properties.

إعادة التشغيل التلقائي: يعني إعادة التشغيل التلقائي إعادة تحميل الفئات البرمجية وتكوينها على الجانب الخادم. بعد إجراء التغييرات على الجانب الخادم، يتم نشرها ديناميكيًا ويتم إعادة تشغيل الخادم وتحميل الكود المعدل. يستخدم بشكل رئيسي في التطبيقات القائمة على خدمات صغيرة. يستخدم Spring Boot اثنانمحمل الحزم من النوع

تم تحميل الفئات غير المتغيرة (ثلثيها) فيمحمل الحزم الأساسي. تم تحميل الفئات التي نقوم بتطويرها نشطًا فيفي محمل الحزم المُعادة التشغيل.

عند إعادة تشغيل التطبيق، يتم التخلص من محمل الحزم المُعادة التشغيل ويتم تعبئة حزمة جديدة. لذا، يبقى محمل الحزم الأساسي متاحًا وتعبىء.

يمكننا استخدام الخاصية spring.devtools.restart.enabled تم تعيين لإيقاف تشغيل إعادة تشغيل الخادم تلقائيًا. أخطاء.

تذكر:

يُراقب DevTools دائمًا موارد مسار الحزمة. الطريقة الوحيدة لتحفيز إعادة التشغيل هي تحديث مسار الحزمة. يحتاج DevTools إلى محمل تطبيقات منفصل للعمل بشكل صحيح. بشكل افتراضي، يتم استخدامه من قبل عملية تطبيق Maven. إعادة التشغيل التلقائي مع LiveReload. يُعتمد DevTools على ربط الإغلاق للسياق التطبيقي لتحسين إعادة التشغيل. يعمل LiveReload بشكل جيد مع

LiveReload: يحتوي مودل Spring Boot DevTools على عنصر يُدعى خادم LiveReload المدمج.، طالما نقوم بالتغييرات فيها، يمكن للنظام التشغيل التطبيق تلقائيًا تحديث المتصفح. الموارد. هذا يُعرف أيضًا ب تحديث تلقائي.

ملاحظة: يمكننا من خلال تعيين الخاصية spring.devtools.livereload. تمكينلإيقاف تشغيل LiveReload، استخدم false.

هذا يوفر ملحقات المتصفح لمتصفحات Chrome،Firefox وSafari. بشكل افتراضي، يتم تمكين LiveReload. يعمل LiveReload في المسار التالي:

/META-INF/maven /META-INF/resources /مصادر /ثابتة /عامة /نماذج

يمكننا أيضًا إيقاف إعادة التحميل التلقائي في المتصفح عن طريق استبعاد المسارات المذكورة أعلاه. على سبيل المثال:

spring.devtools.restart.exclude=public/**, static/**, templates/**

يمكننا استخدام الخاصية لمعرفة المسارات الإضافية الموجودة، انظر إلى spring.devtools.restart.additional-paths.على سبيل المثال:

spring.devtools.restart.additional-paths=/path-to-folder

إذا أردنا استبعاد مسارات أخرى وتريد الحفاظ على المسارات الافتراضية، استخدم الخاصية spring.devtools.restart.additional-exclude.على سبيل المثال:

spring.devtools.restart.additional-exclude=styles/**

تذكر

يمكننا تشغيل خادم LiveReload مرة واحدة. تأكد من عدم تشغيل أي خادم LiveReload آخر قبل بدء تشغيل التطبيق. إذا بدأنا في تشغيل عدة تطبيقات من IDE، يدعم فقط LiveReload الأول.

منفذ التتبع البعيد: يمكن لـ Spring Boot توجيه JDWP (بروتوكول سلسلة التتبع لل调试 Java) مباشرة عبر HTTP إلى التطبيق. حتى أنه يمكن توزيع التطبيق على مزودي خدمات السحابة الذين يفتحون فقط منفذي 80 و 443.

تحديث و إعادة تشغيل بعيد: إحدى الأسرار التي يقدمها DevTools: يدعم التطبيقات البعيدة تحديثوال إعادة التشغيل.يُراقب التغييرات في مسار المسارات المحلية ويقوم بتوجيهها إلى الخادم البعيد، ثم يتم إعادة تشغيله. يمكننا أيضًا دمج هذه الميزة مع LiveReload.

استخدام ملف التشغيل.

بسبب التشغيل التلقائي المتكرر، قد يبطئ إعادة التشغيل التلقائي وقت التطوير. لحل هذه المشكلة، يمكننا استخدام ملف التشغيل.SpringBoot تöverي ملف التشغيل وتتحقق من التعديلات فيه. سيقوم بإعادة تشغيل الخادم وإعادة تحميل جميع التغييرات السابقة.

يمكننا إضافة الخاصية spring.devtools.restart.trigger-file يتم تنفيذ ملف التشغيل في تطبيقنا.هل داخلي أم خارجي؟ على سبيل المثال:

spring.devtools.restart.trigger-file=c:/workspace-sts-3.9.9.RELEASE/restart-trigger.txt

مثال Spring Boot DevTools

الخطوة 1: استخدم Spring Initializr https://start.spring.io/

الخطوة 2: تقدم المجموعةالاسم و العملة معرف. قمنا بتوفير اسم مجموعة com.w3codebox ومعرف العملة spring-boot-devtools-example

الخطوة 3: إضافة الاعتمادات التالية: spring-boot-starter-web وال spring-boot-devtools .

الخطوة 4: انقر إنشاءالزر. سيقوم بتحميل مشروع ال Jar ملف.

الخطوة 5: استخراج ملف Jar.

الخطوة 6: استيراد المجلد إلى STS.

ملف->استيراد->مشاريع Maven موجودة->استكشاف->اختيار مجلد spring-boot-devtools-example->إنهاء

بعد إتمام الاستيراد، يمكننا رؤية المجلدات التالية في جزء Package Explorer في STS.

الخطوة 7: فتح SpringBootDevtoolsExampleApplication.java ويمكن تشغيله كتطبيق Java.

ثم، قم بأي تغيير (تعديل أو حذف بعض الملفات أو الكود) في التطبيق، ثم قم بحفظ التغييرات. بعد حفظ التغييرات، سيقوم الخادم بإعادة التشغيل للحصول على التغييرات.