هذا المشروع هو مشروع Maven يعتمد على إطار عمل Springboot.
اليوم ، عند التعامل مع منطق Interceptor في اعتراض ، تحتاج إلى استدعاء طرق أخرى باستخدام التعليقات التوضيحية وقراءة المعلمات من ملف التكوين. لذلك استخدمت التعليق التوضيحي التالي:
REFERENCE COREREDISTERVICE REDISSERVICE ؛ Value ("$ {Channel}") قناة سلسلة خاصة ؛ value ("$ {allowmethod}") سلسلة خاصة أحدهما هو الحصول على الإشارة إلى الواجهة ، وهما اثنان آخران للحصول على المعلمات في ملف التكوين.
ومع ذلك ، خلال عملية تصحيح الأخطاء ، وجدت أنه لم يتم حقن أي من الثلاثة وأن الموقف الموضح في الشكل أدناه حدث:
يمكنك أن ترى أن القيم الثلاث خالية.
ثم نظرت إلى تكوين مشروعي لتحديد ما إذا كان موضع التقاطع ضمن نطاق التعليق التوضيحي. لم أجد مشكلة. لقد وجدت مشكلة على Baidu ووجدت مشكلة: الوقت الذي يكون فيه أحمال التقاطع قبل SpringContext ، لذلك يتم حقنه بشكل طبيعي في المعترض.
وفقًا للحل ، يتم حقن المعترض أولاً في الفئة التي تقوم بتكوين سلسلة التقاطع. الرمز كما يلي:
package com. *** org.springframework.web.servlet.config.annotation.webmvcConfigureRadapter ؛/*** configurationInterceptorchain* تم إنشاؤه بواسطة yefuliang في 2017/10/23. */ @configurationpublic class BGQWEBAppConfigurer يمتد WebMVCConfigurerAdapter {bean public bgqCommonInterceptorl bgQCommonInterceptorl () {return bgQCommonInterceptorl () ؛ } public void addInterceptors (interceptorregistry registry) {// تشكل اعتراضات متعددة سلسلة اعتراضية يتم استخدام سلسلة اعتراضية // AddPathpatterns لإضافة قواعد اعتراض // excludepathpatterns issist incistry interception.addinterceptor (bgqCommoninterceptorl (). Super.AddInterceptors (السجل) ؛ }} لاحظ أن الحقن هو فئة التقاطع ، وليس الفئة التي تريد حقنها في المعترض ، ثم سجل سلسلة التقاطع.
لا تحتاج إلى إعادة دسم المعلمة الأولى فيه.
بعد تصحيح التعديل ، تصحيح:
كما ترون ، يتم حقن كل شيء فيه ويتم حل المشكلة.
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.