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

AOP Spring

برمجة متوجهة للجانب(AOP) من حيث المعنى هو إضافة إلى OOP لأنه يقدم أيضًا وظائف التمييز. ولكن وحدة الأساس للتمييز هي الجانب وليس الفئة.

يقسم AOP لوجستية البرنامج إلى أجزاء مختلفة (تسمى نقاط الاهتمام). ويستخدم من خلال الاهتمامات العابرة للمكوناتلتحسين التمييز.

الاهتمامات العابرة للمكوناتهو نقطة اهتمام تؤثر على تطبيق برمجي بأكمله، يجب أن تكون قدر الإمكان مركزة في مكان واحد من الكود، مثل إدارة المعاملات، التحقق من الهوية، السجلات، الأمان وما إلى ذلك.


لماذا استخدام AOP؟

يقدم طريقة قابلة للإدراج يمكن استخدامها لتضيف نقاط اهتمام إضافية قبل، بعد أو حول منطق العمل الفعلي. لنفترض أن هناك 10 طرق في فئة، مثلما يلي:

class A{
public void m1(){...}
public void m2(){...}
public void m3(){...}
public void m4(){...}
public void m5(){...}
public void n1(){...}
public void n2(){...}
public void p1(){...}
public void p2(){...}
public void p3(){...}
}

بداية من m هناك خمس طرق، بداية من n هناك طرقين، بداية من p هناك طرق ثلاثة.

فهم الوضعأحتاج إلى الحفاظ على السجلات وإرسال الإشعارات

مشاكل بدون AOPيمكننا تنفيذ الطريقة من الطرق التي تبدأ بـ m. في هذه الحالة، نحتاج إلى كتابة كل من الخمس طرق بخمس طرق.

لكن، إذا قال العميل في المستقبل، لا أحتاج إلى إرسال إشعارات، فسيتم حاجة إلى تغيير جميع الطرق. سيؤدي ذلك إلى مشاكل الصيانة.

حلول AOPلا يجب علينا تنفيذ الطريقة من الطريقة. الآن، يمكننا تعريف اهتمامات أخرى في طرق الكلاس، مثل الحفاظ على السجلات، إرسال الإشعارات، وما إلى ذلك. يُعطى المدخل في ملف xml.

في المستقبل، إذا طلب العميل إزالة ميزة الإشعارات، نحتاج فقط إلى إجراء تغييرات في ملف xml. لذلك، من السهل الحفاظ على AOP.

أين يُستخدم AOP؟

يُستخدم AOP بشكل رئيسي في الحالات التالية:

يقدم خدمات شركات تعريفاتية، مثل إدارة المعاملات التعريفاتية. يُمكن للمستخدم إنشاء جوانب مخصصة.

مفاهيم وترمينات AOP

مفاهيم وтерمينات AOP كالتالي:

نقطة الاتصال نصيحة Pointcut التدخل أوبجكت الهدف جانب مكدس وكلاء AOP تطويق

نقطة الاتصال

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

نصيحة

يُمثل نصيحة عملية اتخاذ الفعالية في نقطة الاتصال المحددة. هناك أنواع مختلفة من النصائح:

نصيحة Before: تتم تنفيذها قبل نقطة الاتصال. نصيحة After Returning: تتم تنفيذها بعد اكتمال نقطة الاتصال بشكل صحيح. نصيحة After Throwing: إذا غادرت الطريقة بسبب التسبب في استثنائية، يتم تنفيذها. نصيحة After (finally): سواء كان خروج نقطة الاتصال طبيعيًا أو استثنائيًا، يتم تنفيذها بعد نقطة الاتصال. نصيحة Around: يتم تنفيذها قبل و بعد نقطة الاتصال.

Pointcut

إنها لغة تعبير AOP، وتتوافق مع نقطة الاتصال.

التدخل

هذا يعني طرق أو حقول نوع التدخل. يسمح لك بتعريف واجهات جديدة لأي أوبجكت مقترح.

أوبجكت الهدف

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

جانب

هذا هو الفئة التي تحتوي على مقترح، نقطة الاتصال، إلخ.

مكدس

هذا هو الجانب الذي يحتوي على مقترح واحد فقط.

وكلاء AOP

يُستخدم لتحقيق العقد المقرر من قبل إطار AOP. في إطار Spring، سيكون هذا JDK dynamic proxy أو CGLIB proxy.

تطويق

هذا هو عملية ربط الجوانب بأصناف أو أوبجكتات أخرى لإنشاء أوبجكتات مقترحة. يمكن إكمال التشكيل في وقت التجميع، في وقت التحميل أو في وقت التشغيل. يتم تنفيذ التشكيل في Spring AOP في وقت التشغيل.

تحقيق AOP

تحقيق AOP يتم توفيره من قبل:

AspectJ AOP Spring AOP JBoss

AOP Spring

يمكن استخدام AOP Spring بثلاث طرق. ولكن الطريقة المستخدمة بشكل واسع هي نمط تعليقات AspectJ Spring. يقدم هنا ثلاث طرق لاستخدام AOP Spring:

استخدام النمط القديم Spring1.2 (قائم على dtd) (يدعم أيضًا في Spring3) إعداد النمط من خلال تعليقات AspectJ إعداد النمط من خلال Spring XML (قائم على النمط)