..


Link-uri sponsorizate

AOP - Proxy

Înainte de a trece pentru a vedea cum vă creaţi cu sfatul lor şi pointcuts aspect, este foarte important pentru a înţelege modul în care proxy-uri.
Un proxy este pur şi simplu un înveliş (recipient), care conţine un obiect şi expune toate spaţiile publice obiect medodi. Când invoca o metodă de pe proxy punerea în aplicare efectivă a metodei este delegată Wrap obiect, făcând prezenţa proxy în întregime transparent pentru utilizator.
Proxy care utilizează AOP de primăvară decât să pună în aplicare metode de delegatul simpla adresa, de asemenea, sfaturi de management diferite.

Noi înţelegem cum face un proxy pună în aplicare una foarte simplă. Mai întâi de toate să creăm o interfaţă simplă:






 SimpleInterface {public interfaţă



	

  



 f1 public void ();



	

  



 void f2 publice ();







 }



vom crea chiar o implementare simpla:





 SimplePojo {public class implementeaza SimpleInterface





  



 @ Override



  



 f1 public void () {



    



 System.out.println ("F1");



    



 f2 ();



  



 }





  



 @ Override



  



 void publice f2 () {



    



 System.out.println ("F2");



  



 }







 }



Am act de faptul că metoda de f1 () face un apel la f2 ().
Să creăm acum proxy, după cum a spus deja trebuie să creăm un obiect container şi expune toate metodele sale, atunci proxy va implementa interfata SimpleInterface şi apoi delege toate apelurile la metoda de obiectul real:






 SimpleProxy {public class implementeaza SimpleInterface





  



 Privare de SimpleInterface delegate;





  



 SimpleProxy publice (SimpleInterface delegaţi) {



    



 super ();



    



 this.delegate = delega;



  



 }





  



 @ Override



  



 f1 public void () {



    



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



    



 delegate.f1 ();



  



 }





  



 @ Override



  



 void publice f2 () {



    



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



    



 delegate.f2 ();



  



 }







 }



În exemplul nostru simplu, proxy-ul nu este un mesaj de imprimare în cazul în care el spune că este delegarea apelul.

Vom crea acum un test principal pentru a vedea cum ne proxy:






 public class Main {





  



 public void principal statică (String [] args) {



    



 / / Creaţi un exemplu de fasole

 

    



 SimpleInterface realBean SimplePojo = new ();





    



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



    



 realBean.f1 ();



    



 System.out.println ();



    



 realBean.f2 ();





    



 System.out.println ();





    



 / / Creaţi un exemplu de proxy



    



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





    



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



    



 proxy.f1 ();



    



 System.out.println ();



    



 proxy.f2 ();



  



 }







 }



Primul bloc de cod de ieşire oferă următoarele:





 Fasole ##### #####







 F1







 F2









 F2



Acum, ne putem aştepta ca producţia de al doilea bloc este urmatoarea:





 Proxy ##### #####







 F1 Delegarea ()







 F1







 Delegarea F2 ()







 F2









 Delegarea F2 ()







 F2



Invce nu! De ieşire va fi după cum urmează:





 Proxy ##### #####







 F1 Delegarea ()







 F1







 F2









 Delegarea F2 ()







 F2



După cum putem vedea că f1 apel de metoda () este metoda f2 () nu trece prin proxy, pentru că odată ce le-au delegat executarea metoda de obiectul real toate apelurile interne nu vor fi interceptate prin procură.
Din acest motiv, nu poate genera sfaturi cu privire la metodele care sunt apelate din alte metode de obiect, sau mai degrabă poate fi creat doar dacă aceste metode sunt utilizate de către obiectelor externe, pentru că altfel sfat nu este executat.
Proxy

Java de primăvară Ghid
E-Learning
Curs Linux Curs Linux
Ghid complet pentru open-source de sistem. Incepand de la 49 €.
Curs PHP Curs PHP
Cursul completa pentru crearea de site-uri Web dinamice. Incepand de la 49 €.
Curs Ruby şi Ruby on Rails Curs Ruby şi Ruby on Rails
Crearea de aplicatii software si web cu Ruby şi RoR. Incepand de la 39 €.
Link-uri sponsorizate