..


Sponsorerede links

AOP - Proxies

Før vi går for at se, hvordan du skaber med deres aspekt pointcuts og rådgivning, er det meget vigtigt at forstå, hvordan fuldmagter.
En proxy er intet mere end en indpakning (container), der indeholder et objekt, og udsætter alle offentlige medodi objekt. Når du påkalder en metode på den proxy den faktiske gennemførelse af den metode, der er uddelegeret til objektet Wrap, hvilket gør tilstedeværelsen af ​​proxy helt transparent for brugeren.
Fuldmagten bruger foråret AOP at gennemføre end de simple delegerede metoder også beskæftige sig med forskellige management rådgivning.

Vi forstår, hvordan en proxy gennemføre en meget enkel. Først skal vi oprette et simpelt interface:






 {Public-grænsefladen SimpleInterface



	

  



 public void f1 ();



	

  



 public void f2 ();







 }



vi skaber selv en simpel implementering:





 SimplePojo {public class implementerer SimpleInterface





  



 @ Override



  



 public void f1 () {



    



 System.out.println ("F1");



    



 f2 ();



  



 }





  



 @ Override



  



 public void f2 () {



    



 System.out.println ("F2");



  



 }







 }



Vi bemærker, at metoden f1 () gør et kald til f2 ().
Lad os nu lave proxy, som allerede sagt, at vi har brug for at skabe en container af et objekt og afsløre alle sine metoder, så proxy vil gennemføre den grænseflade, og derefter uddelegere SimpleInterface alle metodekald til den virkelige objekt:






 SimpleProxy {public class implementerer SimpleInterface





  



 Privat SimpleInterface uddelegeret;





  



 offentlige SimpleProxy (SimpleInterface uddelegere) {



    



 super ();



    



 this.delegate = uddelegere;



  



 }





  



 @ Override



  



 public void f1 () {



    



 System.out.println ("delegerende F1 ()");



    



 delegate.f1 ();



  



 }





  



 @ Override



  



 public void f2 () {



    



 System.out.println ("delegerende F2 ()");



    



 delegate.f2 ();



  



 }







 }



I vores simple eksempel, er det proxy er at udskrive et budskab, som siger, at der uddelegerer opkaldet.

Vi skaber nu en primær test for at se, hvordan vores proxy:






 public class Hoved {





  



 public static void main (String [] args) {



    



 / / Opret en instans af Bean

 

    



 SimpleInterface realBean SimplePojo = new ();





    



 System.out.println ("##### bønne #####");



    



 realBean.f1 ();



    



 System.out.println ();



    



 realBean.f2 ();





    



 System.out.println ();





    



 / / Opret en instans af proxy



    



 SimpleInterface SimpleProxy proxy = ny (ny SimplePojo ());





    



 System.out.println ("##### proxy #####");



    



 proxy.f1 ();



    



 System.out.println ();



    



 proxy.f2 ();



  



 }







 }



Den første blok af kode giver følgende output:





 ##### Bean #####







 F1







 F2









 F2



Nu ville man forvente, at produktionen af ​​den anden blok, er følgende:





 ##### ##### Proxy







 Delegerende F1 ()







 F1







 Delegerende F2 ()







 F2









 Delegerende F2 ()







 F2



Invce ikke! Udgangen vil være som følger:





 ##### ##### Proxy







 Delegerende F1 ()







 F1







 F2









 Delegerende F2 ()







 F2



Som vi kan se opkaldet, at metoden f1 () er den metode, f2 () ikke passere gennem proxy, fordi når du har uddelegeret udførelsen af ​​metoden til det virkelige objekt alle interne opkald, vil ikke blive opfanget ved fuldmagt.
Af denne grund kan du ikke oprette rådgivning om metoder, der kaldes fra andre metoder af objektet, eller rettere kan kun oprettes, hvis disse metoder anvendes af eksterne objekter, for ellers råd er ikke udført.
Proxy

Spring Java Guide
E-Learning
Linux (Kursus) Linux (Kursus)
Komplet guide til open source-system. Fra 49 €.
PHP (Kursus) PHP (Kursus)
Fuld kursus for at skabe dynamiske web-sites. Fra 49 €.
Ruby og Ruby on Rails (Kursus) Ruby og Ruby on Rails (Kursus)
Opret software og web-applikationer med Ruby og RoR. Fra 39 €.
Sponsorerede links