บทความนี้แนะนำคำอธิบายโดยละเอียดของพารามิเตอร์ที่ส่งผ่านไปยังวิธีการแจ้งเตือนโดยใช้ส่วนสปริง มีการแบ่งปันกับคุณดังนี้:
ฉาก:
BlankDisc แสดงถึงเอนทิตีซีดีและเพลงในแทร็กบางอย่างสามารถเล่นได้โดยตรงผ่านวิธี Playtrack ()
ข้อกำหนดคือการบันทึกจำนวนครั้งที่แต่ละแทร็กเล่น
วิธีหนึ่งคือการปรับเปลี่ยนวิธี PlayTrack () และบันทึกหมายเลขนี้โดยตรงในการโทรแต่ละครั้ง อย่างไรก็ตามจำนวนการเล่นของแทร็กการบันทึกนั้นแตกต่างจากการเล่นเองดังนั้นจึงไม่ควรเป็นของวิธี Playtrack () นี่ควรเป็นงานที่ต้องทำให้เสร็จในส่วน
อินเทอร์เฟซ CompactDisc
อินเตอร์เฟสสาธารณะ CompactDisc {// เล่นเพลง Void Playtrack (แทร็กสตริง); - ใช้คลาส blankdisc
คลาสสาธารณะ blankdisc ใช้ compactdisc {ชื่อสตริงส่วนตัว; ศิลปินสตริงส่วนตัว; รายการส่วนตัว <String> แทร็ก; โมฆะสาธารณะ SettItle (ชื่อสตริง) {this.title = title; } โมฆะสาธารณะ setartist (ศิลปินสตริง) {this.artist = ศิลปิน; } โมฆะสาธารณะ setTracks (รายการ <String> แทร็ก) {this.tracks = แทร็ก; } @Override โมฆะสาธารณะ Playtrack (แทร็กสตริง) {system.out.println ("-แทร็ก:" + แทร็ก); - tracecount
/*** งานของคลาสส่วน: บันทึกจำนวนครั้งที่แต่ละแทร็กถูกเล่น* สร้างโดยผู้ดูแลระบบเมื่อ 2017/12/1 */ @component @Aspect คลาสสาธารณะ TrackCounter {แผนที่ส่วนตัว <String, Integer> trackCounts = new HashMap <> (); @PointCut ("การดำเนินการ (* บทที่ 04.aop_args.blankdisc.playtrack (สตริง)) && args (แทร็ก)") โมฆะสาธารณะ trackplayed (แทร็กสตริง) {} // ก่อน ("แทร็ก (แทร็ก)") โมฆะสาธารณะ trackcounts.put (แทร็ก, currentCount + 1); } สาธารณะ int getPlayCount (แทร็กสตริง) {return trackCounts.ContainsKey (แทร็ก)? trackcounts.get (แทร็ก): 0; - ไฟล์กำหนดค่า ApplicationContext.xml
<บริบท: Component-Scan base-package = "aop_test, บทที่ 04" /> <bean id = "compactDisc"> <property name = "title" value = "Sgt. Pepper Lonely Hearts Club Band" /> <property name = "Artist" value = "The Beatles" /> <ชื่อ Pepper's Lonely Hearts Club Band </value> <value> ด้วยความช่วยเหลือเล็กน้อยจากเพื่อนของฉัน </value> <value> Lucy ในท้องฟ้าด้วยเพชร </value> <alues> ดีขึ้น </value> <value> การแก้ไขรู </value> หกสิบสี่ </value> <value> น่ารัก Rita </alues> <value> อรุณสวัสดิ์อรุณสวัสดิ์ </alues> <uled> Sgt Pepper's Lonely Hearts Club Band (reprise) </alues> <value> วันในชีวิต </alues> </list> </property> </ebean> <!-เปิดคำอธิบายประกอบ AOP-> <aop: Aspectj-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 ("ดีขึ้น")); - ผลการทดสอบ 3, 2, 1, 0
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น