..
Î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 F2Acum, ne putem aştepta ca producţia de al doilea bloc este urmatoarea:
Proxy ##### ##### F1 Delegarea () F1 Delegarea F2 () F2 Delegarea F2 () F2Invce nu! De ieşire va fi după cum urmează:
Proxy ##### ##### F1 Delegarea () F1 F2 Delegarea F2 () F2După 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ă.

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