..


Sponsede Lenker

AOP - Proxyer

Før han flyttet for å se hvordan du oppretter med sine råd og aspektet pointcuts, er det svært viktig å forstå hvordan fullmakter.
En proxy er bare en wrapper (container) som inneholder et objekt og eksponerer alle offentlige medodi objekt. Når du aktiverer en metode på proxy den faktiske gjennomføringen av metoden er delegert til objektet Wrap, noe som gjør tilstedeværelsen av proxy helt transparent for brukeren.
Fullmakten som bruker Spring AOP til å implementere enn de enkle delegere metoder også adressere ulike ledelsen råd.

Vi forstår hvordan implementere en proxy en veldig enkel. Først av alt la oss lage et enkelt grensesnitt:






 SimpleInterface {public interface



	

  



 public void f1 ();



	

  



 public void f2 ();







 }



vi skaper selv en enkel implementering:





 SimplePojo {public class implementerer SimpleInterface





  



 @ Override



  



 public void f1 () {



    



 System.out.println ("F1");



    



 f2 ();



  



 }





  



 @ Override



  



 public void f2 () {



    



 System.out.println ("F2");



  



 }







 }



Vi merker oss at metoden f1 () gjør et kall til f2 ().
La oss nå lage proxy, som allerede sagt at vi må opprette en container objekt og avsløre alle sine metoder, så proxy vil implementere grensesnittet SimpleInterface og deretter delegere alle metodekall til den virkelige objektet:






 SimpleProxy {public class implementerer SimpleInterface





  



 Private SimpleInterface delegert;





  



 public SimpleProxy (SimpleInterface delegater) {



    



 super ();



    



 this.delegate = delegere;



  



 }





  



 @ Override



  



 public void f1 () {



    



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



    



 delegate.f1 ();



  



 }





  



 @ Override



  



 public void f2 () {



    



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



    



 delegate.f2 ();



  



 }







 }



I vårt enkle eksempel ikke proxy er skrive ut en melding der han sier at er delegere samtalen.

Vi skaper nå en viktig test for å se hvordan våre proxy:






 public class Hoved {





  



 public static void main (String [] args) {



    



 / / Opprett en forekomst av bean

 

    



 SimpleInterface realBean SimplePojo = new ();





    



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



    



 realBean.f1 ();



    



 System.out.println ();



    



 realBean.f2 ();





    



 System.out.println ();





    



 / / Opprett en forekomst av proxy



    



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





    



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



    



 proxy.f1 ();



    



 System.out.println ();



    



 proxy.f2 ();



  



 }







 }



Den første blokken med kode gir følgende output:





 ##### Beans #####







 F1







 F2









 F2



Nå man ville forvente at utgangen av den andre blokken er følgende:





 ##### Proxy #####







 Delegere F1 ()







 F1







 Delegere F2 ()







 F2









 Delegere F2 ()







 F2



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





 ##### Proxy #####







 Delegere F1 ()







 F1







 F2









 Delegere F2 ()







 F2



Som vi kan se at metoden kaller f1 () er metoden f2 () ikke passerer gjennom proxy, fordi når du har delegert gjennomføringen av metoden til den virkelige objektet alle interne samtaler vil ikke bli fanget opp ved fullmektig.
Av denne grunn ikke kan generere råd om metoder som kalles fra andre metoder av objektet, eller snarere kan opprettes bare hvis disse metodene brukes av eksterne objekter, fordi ellers rådet ikke blir henrettet.
Proxy

Java Spring Guide
E-Learning
Linux (Course) Linux (Course)
Komplett guide til open-source system. Starter fra 49 €.
PHP (Course) PHP (Course)
Full kurs for å lage dynamiske nettsider. Starter fra 49 €.
Ruby og Ruby On Rails (Course) Ruby og Ruby On Rails (Course)
Opprette programvare og web applikasjoner med Ruby og RoR. Starter fra 39 €.
Sponsede Lenker