Artikel ini memperkenalkan penjelasan terperinci dari parameter yang diteruskan ke metode pemberitahuan menggunakan bagian pegas. Itu dibagikan dengan Anda, sebagai berikut:
Pemandangan:
BlankDisc mewakili entitas CD, dan lagu -lagu di trek tertentu dapat diputar langsung melalui metode playtrack ().
Persyaratannya adalah merekam berapa kali setiap trek dimainkan.
Salah satu caranya adalah dengan memodifikasi metode playtrack () dan merekam nomor ini secara langsung pada setiap panggilan. Namun, jumlah pemutaran trek rekaman berbeda dari drama itu sendiri, jadi itu seharusnya bukan milik metode playtrack (). Ini harus menjadi tugas yang harus diselesaikan di bagian tersebut.
Antarmuka CompactDisc
Public Interface CompactDisc {// Mainkan lagu void playtrack (string track); } Menerapkan Kelas BlankDisc
kelas publik BlankDisc mengimplementasikan CompactDisc {private string title; Artis String Pribadi; Daftar Pribadi <String> melacak; public void settitle (string title) {this.title = title; } public void setartist (string artist) {this.artist = artist; } public void setTracks (Daftar <String> tracks) {this.tracks = tracks; } @Override public void playtrack (string track) {System.out.println ("-track:" + track); }} Tracecount
/*** Tugas kelas bagian: Catat berapa kali setiap lagu dimainkan* dibuat oleh administrator pada 2017/12/1. */ @Component @Aspect kelas publik TrackCounter {private Map <String, Integer> trackCounts = new HashMap <> (); @Pointcut ("Eksekusi (* bab04.aop_args.blankdisc.playtrack (string)) && args (track)") public void trackplayed (string track) {} // Sebelum ("trackplayed (track)") public void counttrack (string track) {int currentCount = getplaycount (track) "; trackcounts.put (track, currentCount + 1); } public int getplayCount (string track) {return trackcounts.containskey (track)? trackcounts.get (track): 0; }} File konfigurasi ApplicationContext.xml
<konteks: komponen-scan-package = "aop_test, bab04" /> <bean id = "compactdisc"> <name properti = "judul" value = "sgt. pepper's lonely heart club band" /> <nama properti = "artist" value = "The Beatles" /> <properti nama = "track"> <list> <Nilai> SG. Lepper's Lonely Hearts Club Band </value> <value> Dengan sedikit bantuan dari teman -teman saya </value> <value> lucy di langit dengan berlian </value> <value> Menjadi lebih baik </value> <value> Memperbaiki lubang </value> <value> Nilai Anda </value> </value> untuk kepentingan Mr. Kite! Saya enam puluh empat </value> <value> rita yang indah </value> <value> selamat pagi selamat pagi </value> <value> sgt. Lepper's Lonely Hearts Club Band (Reprise) </value> <value> A Day in the Life </ value> </list> </prupt> </tean> <!-Nyalakan anotasi AOP-> <aop: aspekj-autoproxy/>
tes
@Runwith (springjunit4classrunner.class) @contextConfiguration ("classPath: applicationContext.xml") kelas publik test_aop_args {@autowired compactdisc cd; @Autowired trackcounter trackcounter; @Test public void test () {cd.playtrack ("Sgt. Lepper's Lonely Hearts Club Band"); CD.PlayTrack ("Dengan sedikit bantuan dari teman -teman saya"); CD.PlayTrack ("Lucy in the Sky With Diamonds"); CD.PlayTrack ("Sersan. Lepper's Lonely Hearts Club Band"); CD.PlayTrack ("Dengan sedikit bantuan dari teman -teman saya"); CD.PlayTrack ("Sersan. Lepper's Lonely Hearts Club Band"); System.out.println (trackcounter.getplaycount ("Sersan. Lepper's Lonely Hearts Club Band")); System.out.println (trackcounter.getplayCount ("Dengan sedikit bantuan dari teman -teman saya")); System.out.println (trackcounter.getplaycount ("Lucy in the Sky with Diamonds")); System.out.println (trackcounter.getplayCount ("Gets Better")); }} Hasil tes 3, 2, 1, 0
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.