تقدم هذه المقالة التفسير التفصيلي للمعلمات التي تم تمريرها إلى طريقة الإخطار باستخدام أقسام الربيع. تتم مشاركتها معك ، على النحو التالي:
مشهد:
تمثل BlankDisc كيان قرص مضغوط ، ويمكن تشغيل الأغاني في مسار معين مباشرة من خلال طريقة PlayTrack ().
الشرط هو تسجيل عدد المرات التي يتم فيها تشغيل كل مسار.
طريقة واحدة هي تعديل طريقة PlayTrack () وتسجيل هذا الرقم مباشرة في كل مكالمة. ومع ذلك ، فإن عدد عمليات التشغيل في مسار التسجيل يختلف عن المسرحية نفسها ، لذلك لا ينبغي أن ينتمي إلى طريقة PlayTrack (). يجب أن تكون هذه هي المهمة التي سيتم إكمالها في القسم.
واجهة CompactDisc
الواجهة العامة compactDisc {// تشغيل الأغنية void playtrack (مسار السلسلة) ؛ } تنفيذ فئة BlankDisc
الطبقة العامة BlankDisc تنفذ compactdisc {عنوان السلسلة الخاصة ؛ فنان سلسلة خاصة قائمة خاصة <string> المسارات ؛ public void settitle (tring title) {this.title = title ؛ } public void setArtist (سلسلة string) {this.artist = Artist ؛ } public void setTracks (قائمة <Tring> المسارات) {this.tracks = tracks ؛ } Override public void playtrack (tring track) {system.out.println ("-track:" + track) ؛ }} traceCount
/*** مهمة فئة القسم: سجل عدد المرات التي يتم فيها تشغيل كل مسار* تم إنشاؤه بواسطة المسؤول في 2017/12/1. *// componentAcpion aspract Class TrackCounter {private map <string ، integer> trackCounts = new HashMap <> () ؛ @pointcut ("التنفيذ (* الفصل 04.AOP_ARGS.BLANKDISC.PlayTrack (سلسلة)) && args (track)") public void truicplayed (سلسلة السلسلة) {} // قبل ("TrackPlayed (track)) TrackCounts.put (Track ، CurrentCount + 1) ؛ } public int getPlayCount (سلسلة مسار) {return trackcounts.containskey (track)؟ TrackCounts.get (المسار): 0 ؛ }} ApplicationContext.xml ملف التكوين
<Context: component-scan base-package = "aop_test ، chapter04" /> <bean id = "compactdisc"> <property name = "title" value = "sgt. Pepper's Lonely Hearts Club Band" /> <property name = "value" = "the beatles" /> <property name = "property"> <list> sgt. فرقة Pepper's Lonely Hearts Club Band </value> <value> بمساعدة قليلة من أصدقائي </value> <value> لوسي في السماء مع الماس </value> <value> الحصول على أفضل </value> <sualit> إصلاح ثقب </value> <value> <value> </value> إنها تغادر المنزل </value> أربعة وستون </value> <value> Rita Lovely </value> <value> صباح الخير صباح الخير </value> <value> sgt. BAPPER'S LONELY HEARTS Club Band (reprise) </value> <value> يوم في الحياة </value> </list> </spreenter> </bean> <!-قم بتشغيل التعليق التوضيحي AOP-> <aOP: SideJ-Autoproxy/>
امتحان
Runwith (springJunit4ClassRunner.Class) contextConfiguration ("classPath: ApplicationContext.xml") الفئة العامة test_aop_args {autowired compactdisc cd ؛ autowired trackCounter TrackCounter ؛ Test public void test () {cd.playTrack ("Sgt. Pepper's Lonely Hearts Club Band") ؛ CD.PlayTrack ("مع القليل من المساعدة من أصدقائي") ؛ CD.PlayTrack ("Lucy in the Sky with Diamonds") ؛ CD.PlayTrack ("Sgt. Pepper's Lonely Hearts Club Band") ؛ CD.PlayTrack ("مع القليل من المساعدة من أصدقائي") ؛ CD.PlayTrack ("Sgt. Pepper's Lonely Hearts Club Band") ؛ System.out.println (TrackCounter.getPlayCount ("Sgt. Pepper's Lonely Hearts Club Band")) ؛ System.out.println (TrackCounter.getPlayCount ("مع القليل من المساعدة من أصدقائي")) ؛ System.out.println (TrackCounter.getPlayCount ("Lucy in the Sky with Diamonds")) ؛ System.out.println (trackCounter.getPlayCount ("Getting Better")) ؛ }} نتائج الاختبار 3 ، 2 ، 1 ، 0
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.