이 기사는 스프링 섹션을 사용하여 알림 방법으로 전달 된 매개 변수에 대한 자세한 설명을 소개합니다. 다음과 같이 귀하와 공유됩니다.
장면:
BlankDisc는 CD 엔티티를 나타내고 특정 트랙의 노래는 PlayTrack () 메소드를 통해 직접 재생할 수 있습니다.
요구 사항은 각 트랙이 재생되는 횟수를 기록하는 것입니다.
한 가지 방법은 PlayTrack () 메소드를 수정하고 각 호출 에서이 번호를 직접 녹음하는 것입니다. 그러나 녹음 트랙의 재생 수는 플레이 자체와 다르므로 PlayTrack () 메소드에 속하지 않아야합니다. 이것은 섹션에서 완료해야 할 작업이어야합니다.
CompactDisc 인터페이스
public interface compactDisc {// 노래 void PlayTrack (String Track) 재생; } BlankDisc 클래스를 구현하십시오
Public Class BlankDisc는 CompactDisc {개인 문자열 제목; 개인 문자열 아티스트; 개인 목록 <String> 트랙; public void settitle (문자열 제목) {this.title = title; } public void setArtist (String Artist) {this.artist = 아티스트; } public void settracks (list <string> 트랙) {this.tracks = 트랙; } @override public void playtrack (String track) {System.out.println ( "-트랙 :" + 트랙); }} 추적
/*** 섹션 클래스의 작업 : 2017/12/1의 관리자가 작성한 각 트랙이 재생되는 횟수를 기록하십시오. */ @component @aspect public class trackcounter {private map <string, integer> trackcounts = new Hashmap <> (); @PointCut ( "실행 (* 챕터04.aop_args.blankdisc.playtrack (string)) && args (track)") public void trackplayed (String track) {} // propublaid counttrack ( "String track) {int currentscount = getPlayCount (track); trackcounts.put (track, currentCount + 1); } public int getPlayCount (문자열 트랙) {return trackcounts.containskey (트랙)? 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 밴드" /> <속성 이름 = "artist"value = "The Beatles" /> <property name = "tracks"> <list> sgt. Pepper 's Lonely Hearts Club 밴드 </value> <alue> 내 친구의 약간의 도움으로 </value> <alue> Diamonds와 함께 하늘에서 Lucy </value> <value> 더 나아지는 </value> <value> 구멍을 고정하는 </value> <value> 그녀는 집을 떠나고 있습니다. 64 </value> <value> 사랑스러운 리타 </value> <value> 좋은 아침 좋은 아침 </value> <value> sgt. Pepper 's Lonely Hearts Club Band (Reprise) </value> <value> 하루의 하루 </value> </list> </property> </bean> <!-AOP 주석을 켭니다-> <aop : sagne-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 ( "다이아몬드와 하늘의 루시"); 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")); System.out.println (TrackCounter.getPlayCount ( "더 나은")); }} 테스트 결과 3, 2, 1, 0
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.