..
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 F2Nå man ville forvente at utgangen av den andre blokken er følgende:
##### Proxy ##### Delegere F1 () F1 Delegere F2 () F2 Delegere F2 () F2Invce ikke! Utgangen vil være som følger:
##### Proxy ##### Delegere F1 () F1 F2 Delegere F2 () F2Som 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.

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