هي السيطرة الحبيبات الدقيقة من aspectj-autoproxy ممكن في الربيع؟

StackOverflow https://stackoverflow.com/questions/803942

  •  03-07-2019
  •  | 
  •  

سؤال

إذا أنا فقط إضافة <اوب: aspectj-autoproxy الوكيل الهدف من الدرجة = "كاذبة" /> لبدء بلدي سياق الربيع، كل حبة واحدة التي تطبق واجهة يحصل وكيل JDK. أود حقا للحد من استخدام الخادم الوكيل A) إلى الفئات التي تحتاج إلى وكلاء أو B) الطبقات الذي أحدده أنها تحتاج إلى وكلاء في الواقع.

وحاولت استخدام اوب: مقطع راقب الوكيل ضمن defintion أكس الفول للحبوب التي تحتاج إلى وكلاء، ولكن اتضح أن هذا لا يبدو أن تعطيني اوب النصيحة

.

وكما أنني حاولت مضيفا <اوب: aspectj-autoproxy ....> قرب نهاية بلدي ملف xml الربيع، ولكن قبل أن يضيف كل الفاصوليا التي تحتاج إلى وكلاء، ولكن لا يبدو للعمل بشكل صحيح

ولدي <م> الكثير من الفول مع واجهات ولكن (واضحة المعالم) حفنة فقط تحتاج إلى مشورة اوب، وأولئك الوكلاء وخبطة بلدي stacktraces وقتا كبيرا. (لقد peeked في ربيع 3.0 و أظن أنه سيكون من الممكن هناك ولكن يبدو انها في حين بعيدا).

هل هذا ممكن في 2.5.X؟

هل كانت مفيدة؟

المحلول

وكما هو واضح في خط AbstractAdvisorAutoProxyCreator.java 67 (ربيع 2.5.6)، خالق autoproxy لا حقا فقط ما يطلب منها. فإنه لا autoproxy أكثر مما تظن ضروريا.

وتبين انها نوع من التعبير pointcut كنت تستخدم بشكل كبير يؤثر على مقدار إنشاء وكلاء لهذه الفئة لا. كان الشرح كنت تستخدم

@Around(value="@target(myannotation)")

وهذا يعني أساسا الربيع يولد الوكيل الذي تقرر اعتراض على أساس نوع الهدف الاحتجاج الفعلي. الجانب السلبي من هذا هو أن الربيع يحاول القيام بذلك مع جميع الفاصوليا المتاحة في applicationcontext. إذا كنت قد تم استخدام شيء من هذا القبيل @ داخل بدلا من ذلك، سوف يكون الربيع باستخدام واجهة لتقرر ما إذا autoproxying يجب أن تتم، وهذا يمكن أن يتم تحديدها بشكل ثابت في ذلك الوقت هو مبني على applicationcontext.

وحتى الآن لدي اثنين من الفئات التي يتم بروكسي فقط؛)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top