В этой статье представлено подробное объяснение параметров, передаваемых методу уведомления с использованием разделов Spring. Это разделено с вами следующим образом:
Сцена:
Blankdisc представляет собой объект компакт -диска, а песни в определенном треке можно воспроизвести непосредственно с помощью метода Playtrack ().
Требование состоит в том, чтобы записать количество раз, когда воспроизводится каждый трек.
Одним из способов является изменение метода Playtrack () и записать этот номер непосредственно при каждом вызове. Тем не менее, количество воспроизведения трека записи отличается от самой игры, поэтому она не должна принадлежать методу PlayTrack (). Это должно быть задачей, которая должна быть выполнена в разделе.
Интерфейс CompactDisc
public interface CompactDisc {// Play the Song void playtrack (String Track); } Реализовать класс Blankdisc
открытый класс BlankDisc реализует CompactDisc {Private String Title; частный художник; частный список <string> треки; public void settitle (string title) {this.title = title; } public void Setartist (String Artist) {this.Artist = Artist; } public void settracks (list <string> треки) {this.tracks = tracks; } @Override public void playtrack (String Track) {System.out.println ("-Track:" + Track); }} Tracecount
/*** Задача класса раздела: Запишите количество раз, когда каждый трек воспроизводится* создается администратором 2017/12/11. */ @Component @Aspect public class trackcounter {private map <string, integer> trackcounts = new hashmap <> (); @Pointcut ("execution (* gupt04.aop_args.blankdisc.playtrack (string)) && args (track)") public void трекплей (String Track) {} // до ("TrackPlayed (трек)") public void counttrack (String Track) {int currentCount = getPlayCount (трек); TrackCounts.put (трек, CurrentCount + 1); } public int getPlayCount (String Track) {return TrackCounts.containSkey (трек)? TrackCounts.get (трек): 0; }} ApplicationContext.xml Файл конфигурации
<Контекст: Component-Scan Base-package = "aop_test, глава04" /> <bean id = "compactdisc"> <name = "title" value = "sgt. Pepper's Lonely Hearts Club Band" /> <name = "artist" value = "the Beatles" /> <Property name = "треки"> <Sture> <Value> SGT. Pepper's Lonely Hearts Club Band </value> <datule> с небольшой помощью моих друзей </value> <dulch> Люси в небе с бриллиантами </value> <dule> Шестьдесят четыре </value> <dulch> lovely rita </value> <dulch> Доброе утро, доброе утро </value> <dather> сержант. Band Pepper's Lonely Hearts Club Club Band (Reprise) </value> <value> в день в жизни </value> </list> </property> </bean> <!-Включите аннотацию 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 ("сержант. Pepper's Lonely Hearts Club Band"); cd.playtrack («С небольшой помощью моих друзей»); CD.PlayTrack («Люси в небе с бриллиантами»); CD.PlayTrack («Сержант Пеппер« Одинокий сердечный клуб »); cd.playtrack («С небольшой помощью моих друзей»); CD.PlayTrack («Сержант Пеппер« Одинокий сердечный клуб »); System.out.println (TrackCounter.getPlayCount ("сержант Pepper's Lonely Hearts Club Band")); System.out.println (TrackCounter.getPlayCount («С небольшой помощью моих друзей»)); System.out.println (TrackCounter.getPlayCount ("Люси в небе с бриллиантами")); System.out.println (TrackCounter.getPlayCount («Получение лучше»)); }} Результаты теста 3, 2, 1, 0
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.