Este artigo apresenta a explicação detalhada dos parâmetros passados para o método de notificação usando seções de mola. É compartilhado com você, como segue:
Cena:
BlankDisc representa uma entidade de CD, e as músicas em uma determinada faixa podem ser tocadas diretamente através do método Playtrack ().
O requisito é registrar o número de vezes que cada faixa é reproduzida.
Uma maneira é modificar o método Playtrack () e gravar esse número diretamente em cada chamada. No entanto, o número de reproduções da faixa de gravação é diferente da própria peça, portanto, não deve pertencer ao método Playtrack (). Esta deve ser a tarefa a ser concluída na seção.
Interface compactDisc
interface pública compactDisc {// reproduz a música void playtrack (faixa de string); } Implementar a classe BlankDisc
public class BlankDisc implementa compactdisc {private string title; Artista de cordas privadas; Lista privada <String> Tracks; public void Settitle (título da string) {this.title = title; } public void setArtist (string artista) {this.artist = artist; } public void setTracks (list <string> faixas) {this.tracks = rastreias; } @Override public void Playtrack (String Track) {System.out.println ("-Track:" + Track); }} TraceCount
/*** Tarefa da classe da seção: registre o número de vezes que cada faixa é reproduzida* criada pelo administrador em 2017/12/1. */ @Component @Aspect public class TrackCounter {private mapa <string, Integer> trackCounts = new Hashmap <> (); @PointCut ("Execution (* Capítulo04.aop_args.blankdisc.playtrack (string)) && args (rastrear)") public void rastrear (track string) {} // antes ("trackplayed (rastrear)) public void Countrack (string track) {IntcurntCount = getCount (track); trackCounts.put (Track, CurrentCount + 1); } public int getPlayCount (String track) {return trackcounts.containskey (faixa)? TrackCounts.get (faixa): 0; }} ApplicationContext.xml Arquivo de configuração
<Contexto: componente-scan Base-Package = "AOP_TEST, Capítulo04" /> <bean id = "compactdisc"> <propriedade name = "title" value = "Sgt. Pepper's Lonely Hearts Club Band" /> <list Nome = "Artista" Value = "The Beatles" /> <Nome da propriedade = "Tracks"> <List> <Value> <Value "St. Pepper's Lonely Hearts Club Band </value> <Value> Com uma pequena ajuda dos meus amigos </value> <Value> Lucy no céu com diamantes </value> <Value> melhorando </value> <value> corrigindo um buraco </value </value> ela está saindo de casa, </value> <Value> eu sou o benefício de Mr. Kite! Sessenta e quatro </value> <Value> adorável rita </value> <Value> bom dia bom dia </alue> <Value> sgt. Pepper's Lonely Hearts Club Band (Reprise) </value> <Value> Um dia na vida </value> </list> </Property> </bean> <!-LIGUE ANOTAÇÃO AOP-> <AOP: AspectJ-AutoProxy/>
teste
@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's Lonely Hearts Club Band"); CD.PlayTrack ("Com uma pequena ajuda dos meus amigos"); CD.PlayTrack ("Lucy no céu com diamantes"); CD.Playtrack ("Sgt. Pepper's Lonely Hearts Club Band"); CD.PlayTrack ("Com uma pequena ajuda dos meus amigos"); CD.Playtrack ("Sgt. Pepper's Lonely Hearts Club Band"); System.out.println (rastrear.getplayCount ("Sgt. Pepper's Lonely Hearts Club Band")); System.out.println (trackCounter.getPlayCount ("Com uma pequena ajuda dos meus amigos")); System.out.println (trackcounter.getplayCount ("Lucy no céu com diamantes")); System.out.println (rastrear.getplayCount ("melhorar"); }} Resultados do teste 3, 2, 1, 0
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.