Cet article présente l'explication détaillée des paramètres transmis à la méthode de notification à l'aide des sections de ressort. Il est partagé avec vous, comme suit:
Scène:
BlankDisc représente une entité de CD, et les chansons dans une certaine piste peuvent être jouées directement via la méthode PlayTrack ().
L'exigence est d'enregistrer le nombre de fois que chaque piste est lue.
Une façon consiste à modifier la méthode PlayTrack () et à enregistrer ce numéro directement à chaque appel. Cependant, le nombre de lectures de la piste d'enregistrement est différent du jeu lui-même, il ne devrait donc pas appartenir à la méthode PlayTrack (). Cela devrait être la tâche à accomplir sur la section.
Interface compactec
Interface publique CompactDisc {// Play the Song void PlayTrack (String Track); } Implémenter la classe BlankDisc
classe publique BlankDisc implémente CompactDisc {Titre de la chaîne privée; Artiste de cordes privées; Liste privée <string> Tracks; public void SettItle (String Title) {this.title = title; } public void Setartist (String Artist) {this.artist = artiste; } public void setTracks (list <string> tracks) {this.tracks = tracks; } @Override public void playTrack (String Track) {System.out.println ("- Track:" + Track); }} Tracecow
/ ** * Tâche de la classe de section: Enregistrez le nombre de fois que chaque piste est lue * créée par l'administrateur le 2017/12/1. * / @Component @aspect public class trackCounter {private map <string, Integer> trackCounts = new hashmap <> (); @PointCut ("EXECUTION (* Chapter04.aop_args.blankdisc.playTrack (String)) && args (piste)") public void trackPlayed (String Track) {} // avant ("trackPlayed (piste)") public void countTrack (String Track) {int CourtCount = GetPlayCount (piste); trackcountes.put (piste, currentCount + 1); } public int getPlayCount (String Track) {return trackcounts.containsKey (piste)? trackcounts.get (piste): 0; }} Fichier de configuration d'applicationContext.xml
<Context: Component-Scan Base-Package = "AOP_TEST, Chapter04" /> <Bean Id = "CompactDisc"> <Property Name = "Title" Value = "Sgt. Pepper's Lonely Hearts Club Band" /> <Property Name = "Artist> Value =" The Beatles "/> <Property Name =" Tracks "> <ist> <Value> Sgt. Band Club Lonely Hearts de Pepper </value> <value> avec un peu d'aide de mes amis </value> <value> Lucy dans le ciel avec diamants </value> <value> s'améliore </value> <value> Fixation d'un trou </value> <value> Elle quitte la maison </value> <value> être pour le bénéfice de M. Kite! </value> Soixante-quatre </value> <value> Lovely Rita </value> <value> bonjour bonjour </value> <value> Sgt. Pepper's Lonely Hearts Club Band (Reprise) </value> <value> Une journée dans la vie </value> </sist> </prophed> </ank> <! - Activez l'annotation AOP -> <aop: AspectJ-Autoproxy />
test
@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 ("avec un peu d'aide de mes amis"); CD.PlayTrack ("Lucy dans le ciel avec des diamants"); CD.PlayTrack ("Sgt. Pepper's Lonely Hearts Club Band"); CD.PlayTrack ("avec un peu d'aide de mes amis"); 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 ("avec un peu d'aide de mes amis")); System.out.println (trackcounter.getPlayCount ("Lucy dans le ciel avec des diamants")); System.out.println (trackcounter.getPlayCount ("Getting Better")); }} Résultats des tests 3, 2, 1, 0
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.