تقدم هذه المقالة استخدام المقاطعات في SPRING-BOOT. إنهم يتعاملون بشكل عام مع معالجة المجال المتقاطع في المقاطعات ، مما يسمح بالوصول عبر المجال إلى المشاريع. للحصول على معلومات مفصلة حول استخدام المعترضات ، يرجى الرجوع إلى الموقع الرسمي.
خطوات لتنفيذ اعتراض مخصص:
1. إنشاء فئة وتنفيذ واجهة المعالج.
2. قم بإنشاء فئة Java لروث WebMVcConfigureRadapter وتجاوز طريقة AddInterceptors.
2. تسليم المقاطع المخصصة لإدارة الربيع ، ثم إضافة الكائن يدويًا إلى سلسلة التقاطع (إضافة في طريقة الإضافة).
إنشاء فئة اعتراضية
package com.example.springboot.config.InterCepter ؛ استيراد org.springframework.stereotype.component ؛ استيراد org.springframework.web.servlet.handlerNerInterceptor ؛ استيراد org.springframework.web.servled.modelandview ؛ javax.servlet.http.httpservletresponse ؛/** * deSc اعتراض مخصص ، استخدم component للسماح لـ Spring بإدارة دورة حياته * @author wangsh * date 2018/5/6 17:06 * reghturn استجابة httpservletresponse ، معالج الكائن) يلقي استثناء {system.out.println (">>> prehandle >>>>>>>>>>> الاتصال قبل معالجة الطلب (قبل استدعاء طريقة وحدة التحكم)") ؛ setCrossdomain (استجابة) ؛ إرجاع true ؛ // فقط عندما تستمر العائدات الحقيقية في تنفيذ الأسفل ، إرجاع خطأ لإلغاء الطلب الحالي} Override public void posthandle (httpservletrequest request ، httpservletresponse response ، معالج الكائنات ، modelandview modelandview) يلقي استثناء {// call بعد المعالجة ، ولكن قبل أن يتم عرض طريقة العرض (بعد أن يتم استدعاء وحدة التحكم) ؛ System.out.println (">>> postthandle >>>>>>>>>>>>>>>> المكالمة بعد معالجة الطلب ، ولكن قبل تقديم العرض (بعد استدعاء طريقة وحدة التحكم)") ؛ } Override public void AfterCompletion (طلب httpservletrequest ، استجابة httpservletresponse ، معالج الكائن ، استثناء EX) يلقي الاستثناء {// يسمى بعد انتهاء الطلب بالكامل ، أي ، يتم تنفيذها بعد أن يقوم المرسلون servevlet بعرض العرض المقابل (بشكل رئيسي لتنظيف الموارد) ؛ system.out.println (">>> posthandle >>>>>>>>>>>>>> تسمى بعد انتهاء الطلب بأكمله ، أي بعد أن يقدم المرسلات العرض المقابلة (بشكل رئيسي لتنظيف الموارد)") ؛ } / *** paramparam setting setting file* return void type* throws* title: setCrossdomain* description: toDo (تعيين مشكلة متعددة المدى)* / private void setCrossdomain (httpservletresponse response) {revieD.AddHeader ( Response.addheader ("Access-Control-allow-Methods" ، "post ، get") ؛ Response.Addheader ("Access-Control-Callereds" ، "True") ؛ }}أضف اعتراضًا مخصصًا إلى سلسلة التقاطع
package com.example.springboot.config.config ؛ استيراد com.example.springboot.config.InterCet org.springframework.web.servlet.config.annotation.Interceptorregistry مستقبلات. Override public void addInterceptors (interceptorregistry registry) {registry.adDInterceptor (testInterceptor) ؛ }}إنشاء فئة وحدة تحكم
package com.example.springboot.config.conroller ؛ استيراد org.springframework.web.bind.annotation.requestmapping ؛ استيراد org.springframework.web.bind.annotation.restController ؛ repringController@requestmapping (/user ") Hello () {return "Hello" ؛ }}إنشاء فئة خدمة بدء التشغيل
package com.example.springboot.config ؛ استيراد org.springframework.boot.springapplication ؛ استيراد org.springframework.boot.autoconfigure.springbootapplication ؛ springbootapplicationplicationpublication springbootconfigplication springapplication.run (SpringBootConfigapplication.class ، args) ؛ }}
ابدأ اختبار الخدمة ، تفضل بزيارة http: // localhost: 8088/hello في المتصفح ، قم بطباعة السجل على النحو التالي ، يمكنك أن ترى أن التقاطع قد مرت.
لخص
ما ورد أعلاه هو شرح مفصل لاستخدام اعتراضات تكوين Springboot التي أدخلها المحرر. آمل أن يكون ذلك مفيدًا للجميع. إذا كان لديك أي أسئلة ، يرجى ترك رسالة لي. سوف يرد المحرر على الجميع في الوقت المناسب!