بشكل عام ، نقوم بتكوين إدارة المعاملات لرمز طبقة الخدمة في ملف تعريف تكوين الربيع. xml. يمكننا تعزيز أساليب الخدمة أو معالجة المعاملات مثل تراجع المعاملات. ومع ذلك ، عندما نواجه مشكلة ، إذا تم استدعاء طريقة طبقة الخدمة في فئة وحدة التحكم ، فستكون إدارة المعاملات المكونة غير صالحة. إذا استفسرنا عن المعلومات ذات الصلة ووجدنا السبب. في الواقع ، فإن Spring و SpringMVC هما علاقات بين الوالدين والطفل ، الربيع هو حاويات أولياء الأمور ، و springMVC هي حاويات الأطفال. بمعنى آخر ، يجب أن يكون Application.xml مسؤولاً عن مسح التعليقات التوضيحية لـ Controller مثل Service ، في حين يجب أن يكون ملف تكوين springMVC مسؤولاً فقط عن مسح controller ، وإلا فإنه سيؤدي إلى التسبب في فحوصات متكررة في تكوين المعاملات التي تم تكوينها في حاوية الزنبرك.
لذلك ، يجب أن تكون طريقة التكوين الصحيحة:
ملف تكوين الربيع: application.xml
<السياق: مكون-المسح الضوئي package = "org.bc.redis" use-default-filters = "true"> <!-استبعاد الفئات مع @controller annotation-> <context: explude-filter = "annotation" expression = "org.bc.redis.controller.userroller"/>
أو
<!-حدد الحزمة الممسوحة ضوئيًا ، وتجنب الحزم التي تحتوي على التعليق التوضيحي controller-> <السياق: مكون المسح الضوئي = "org.bc.redis.service" use-default-filters = "true"> </context: component-scan>
ملف تكوين springmvc: springmvc.xml
<!-مسح الحزم فقط باستخدام التعليق التوضيحي controller لتجنب عمليات المسح المتكرر-> <السياق: مكون المسح الضوئي-"org.bc.redis.controller" use-default-filters = "true"> </context: component-scan>
في النهاية
بعد الاختبار ، المشكلة الرئيسية هي أن ملف تكوين SpringMVC يقوم بمسح نطاق الحزمة. حتى إذا قام ملف تكوين Spring بمسح شرح التعليق التوضيحي Controller ، فسيتم إنقاذه مرة واحدة في SpringMVC. طالما لم يتم إنقاذ خدمة إدارة المعاملات ، فلن تكون هناك مشكلة في فشل المعاملة.
لخص
ما سبق هو كل محتوى هذه المقالة حول أسباب وحلول إدارة المعاملات غير صالحة لتكوين Spring+SpringMVC. آمل أن يكون ذلك مفيدًا للجميع. يمكن للأصدقاء المهتمين الاستمرار في الرجوع إلى الموضوعات الأخرى ذات الصلة على هذا الموقع. إذا كانت هناك أي أوجه قصور ، فيرجى ترك رسالة لإشارةها. شكرا لك يا أصدقائك لدعمكم لهذا الموقع!