يصف SideJ الظل والتعزيز من خلال التعليقات التوضيحية.
1 متطلبات بيئة التنمية
لأنك تريد استخدام التعليقات التوضيحية ، تأكد من أنك تستخدم Java 5.0 وما فوق.
قدم مكتبة الفصل ذات الصلة SideJ:
<Rependency> <roupEd> org.aspectj </rougiD> <StifactId> sidejrt </shintifactid> <soph> $ {sidej.version} </version> </sependency> <redence> <roupId> org.aspectj </groupid> <sophy> $ {sidej.version} </version> </sependency> <redence> <roupiD> org.aspectj </groupId> <ChotifactId> sidejtools </senfactid> <sored> $ {sidej.version} </version> <splex> $ {sidej.version} </version> </sependency> <redency> <roupiD> aopalliance </rougiD> <intifactid> aopalliance </stifactid> <soph> $ {aOpalliance.version} </version> </spension> 2 طرق البرمجة
@الجانب // تحديد الجوانب
prerentaspric prerentaspric {/*** logic ongist*/ @before ("التنفيذ (* rent (..))") // تحديد أنواع الظل والتعزيز الفراغ العام beforerent () {system.out.println ("ابدأ تنفيذ الإجراءات الإيجار") ؛ }}هذا القسم هو مجرد POJO العادي ، ولكن تتم إضافة التعليق التوضيحي ASPECT.
@Before("execution(* rent(..))") يعني أن نوع @Before هو تحسين مسبقًا ، ومحتواوه هو تعبير ASPECTJ نقطة. هنا يعني أن التحسين يتم نسجها على طريقة الإيجار () للفئة المستهدفة. يمكن أن تحتوي الإيجار () على أي معلمات واردة وأي قيمة إرجاع.
أليس من المريح للغاية أن يكون هناك فئة مع @Aspect لدمج نقطة الظل ونوع التحسين والمنطق المتقاطع من خلال التعليقات التوضيحية والرمز؟ o (∩_∩) يا هاها ~
اختبارات الوحدة:
SideJproxyFactory Factory = جديد acferjproxyfactory () ؛ // قم بتعيين مصنع الفئة الهدف.
نتيجة الإخراج:
-بدء عمل التأجير-
المستخدم: الإيجار [بنك الطاقة]
المستخدم: إرجاع [Power Bank]
3 طريقة التكوين
<!-فئة الهدف-> <bean id = "user"/> <!-فئة الوجه-> <bean/> <!-إنشاء Agent-> <bean/> تلقائيًا
اختبارات الوحدة:
ApplicationContext Context = جديد classpathxmlapplicationContext (spring.xml ") ؛ مستخدم المستخدم = (المستخدم) سياق.
الإخراج هو بالضبط نفس البرنامج.
يمكن أيضًا تكوينه بناءً على مساحة اسم AOP الخاصة بالمخطط:
<؟ Xmlns: aop = "http://www.springframework.org/schema/aop" http://www.springframework.org/schema/beans/spring-beans-4.0.xsd Drive-> <aop: sidej-autoproxy/> <!-فئة الهدف-> <bean id = "user"/> <!-فئة الوجه-> <bean/> </bans>
هذا التكوين أبسط. في الواقع ، تم اعتماد وضع الوكيل التلقائي ضمن <aop:aspectj-atuoproxy/> o (∩_∩) o haha ~
السمة من proxy-target-class من <aop:aspectj-atuoproxy/> خاطئة بشكل افتراضي ، مما يشير إلى أن التحسين نسج باستخدام تقنية الوكيل الديناميكي JDK ؛ إذا كانت هذه القيمة صحيحة ، فهذا يشير إلى أن التحسين يتم نسجه باستخدام تقنية الوكيل الديناميكي CGLIB. إذا لم تعلن الفئة المستهدفة الواجهة ، حتى لو تم تعيين proxy-target-class على خطأ ، فإن Yo (∩_∩) o haha ~
بالنسبة للمشاريع المستندة إلى Java 5.0+ ، يوصى باستخدام SideBJ لتكوين نقاط النقاط والتحسين ، لأن هذا أبسط وأكثر مباشرة.
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.