この記事では、スプリングセクションを使用して通知方法に渡されたパラメーターの詳細な説明を紹介します。次のように、それはあなたと共有されます:
シーン:
BlankDiscはCDエンティティを表し、特定のトラックの曲はPlayTrack()メソッドを介して直接再生できます。
要件は、各トラックが再生される回数を記録することです。
1つの方法は、playTrack()メソッドを変更し、各コールでこの番号を直接記録することです。ただし、レコーディングトラックの再生数はプレイ自体とは異なるため、PlayTrack()メソッドに属してはなりません。これは、セクションで完了するタスクである必要があります。
CompactDiscインターフェイス
public interface compactdisc {//曲を再生void playtrack(string track); } BlankDiscクラスを実装します
Public Class BlankDiscはCompactDiscを実装しています{プライベート文字列タイトル。プライベートストリングアーティスト。プライベートリスト<文字列>トラック。 public void settitle(string title){this.title = title; } public void setArtist(String Artist){this.artist = Artist; } public void setTracks(list <string> tracks){this.tracks = tracks; } @Override public void playtrack(string track){system.out.println( " - track:" + track); }} TraceCount
/***セクションクラスのタスク:各トラックが再生される回数を記録* 2017/12/1に管理者によって作成されました。 */ @Component @Aspect Public Class TrackCounter {private Map <String、integer> trackCounts = new Hashmap <>(); @pointcut( "execution(* chapter04.aop_args.blankdisc.playtrack(string))&& args(track)")public void trackplayed(string track){} {} // before( "trackplayed(track)")public void counttrack(string track){intplaycount(track); trackCounts.put(track、currentCount + 1); } public int getPlayCount(String Track){return TrackCounts.ContainsKey(トラック)? trackcounts.get(track):0; }} ApplicationContext.xml構成ファイル
<コンテキスト:Component-Scanベースパッケージ= "AOP_TEST、CHAPTER04" /> <BEAN ID = "CompactDisc"> <Property Name = "Title" Value = "Sgt。Pepper'sLonely Hearts Club Band" /> <Artist "value =" The Beatles " /> <Property name =" tracks "> <値> <値> <値> < Pepper's Lonely Hearts Club Band </value> <value>友人からの少しの助けを持って</value> <値>ダイヤモンドで空のルーシー</value> <balue>穴を取得する</value> <値>彼女は家を離れる</value> <値60-Four </value> <value>素敵なRita </value> <balue>おはようおはよう</value> <value> Sgt。 Pepper's Lonely Hearts Club Band(Reprise)</value> <value>人生の1日</value> </list> </property> </bean> <! - AOPアノテーションをオンにする - > <aop:aspectj-autoproxy/>>
テスト
@runwith(springjunit4classrunner.class)@contextconfiguration( "classpath:applicationcontext.xml")public class test_aop_args {@autowired compactdisc cd; @Autowired TrackCounter TrackCounter; @test public void test(){cd.playtrack( "Sgt。Pepper'sLonely Hearts Club Band"); cd.playtrack( "私の友達から少し助けて」); Cd.PlayTrack(「ダイヤモンドと空のルーシー」); Cd.PlayTrack( "Sgt。Pepper'sLonely Hearts Club Band"); cd.playtrack( "私の友達から少し助けて」); Cd.PlayTrack( "Sgt。Pepper'sLonely Hearts Club Band"); System.out.println(trackCounter.getPlayCount( "Sgt。Pepper'sLonely 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 getting")); }}テスト結果3、2、1、0
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。