..
Innan vi går för att se hur du skapar med sina aspekt pointcuts och råd, är det mycket viktigt att förstå hur proxyservrar.
En proxy är inget annat än ett omslag (container) som innehåller ett objekt och exponerar alla offentliga medodi objekt.
När du anropar en metod på proxy det faktiska genomförandet av metoden är delegerat till objektet Wrap, vilket gör närvaron av proxy helt transparent för användaren.
Fullmakten använder Spring AOP att genomföra än den enkla delegera metoder även hantera olika rekommendationer för förvaltningen.
Vi förstår hur en proxy genomföra en mycket enkel. Först skapar vi ett enkelt gränssnitt:
{Public interface SimpleInterface
public void f1 ();
public void f2 ();
}
skapar vi även en enkel implementering:
SimplePojo {public klass implementerar SimpleInterface
@ Åsidosätt
public void f1 () {
System.out.println ("F1");
f2 ();
}
@ Åsidosätt
public void f2 () {
System.out.println ("F2");
}
}
Vi noterar att metoden f1 () gör ett anrop till f2 ().
Låt oss nu skapa den proxy som redan sagt att vi måste skapa en behållare av ett objekt och avslöja alla sina metoder, då ombud kommer att genomföra gränssnittet och sedan delegera SimpleInterface alla metodanrop till verkliga objekt:
Simpleproxy {public klass implementerar SimpleInterface
Privat SimpleInterface delegerats,
offentliga simpleproxy (SimpleInterface delegat) {
super ();
this.delegate = delegat;
}
@ Åsidosätt
public void f1 () {
System.out.println ("Delegera F1 ()");
delegate.f1 ();
}
@ Åsidosätt
public void f2 () {
System.out.println ("Delegera F2 ()");
delegate.f2 ();
}
}
I vårt enkla exempel, fullmakten skriva ut ett meddelande som säger att är att delegera samtalet.
Vi skapar nu en viktig test för att se hur våra proxy:
public class Huvudnamnrymden {
public void main (String [] args) {
/ / Skapa en instans av bönan
SimpleInterface realBean SimplePojo = new ();
System.out.println ("##### böna #####");
realBean.f1 ();
System.out.println ();
realBean.f2 ();
System.out.println ();
/ / Skapa en instans av proxy
SimpleInterface simpleproxy proxy = new (nytt SimplePojo ());
System.out.println ("##### proxy #####");
proxy.f1 ();
System.out.println ();
proxy.f2 ();
}
}
Den första kodblock ger följande utdata:
##### Bean ##### F1 F2 F2Nu skulle man förvänta sig att produktionen av det andra blocket är följande:
##### ##### Proxy Delegera F1 () F1 Delegera F2 () F2 Delegera F2 () F2Invce inte! Utgången kommer att vara följande:
##### ##### Proxy Delegera F1 () F1 F2 Delegera F2 () F2Som vi kan se samtalet att metoden f1 () är metoden f2 () inte passerar via proxyn, eftersom när du har delegerat genomförandet av metoden för att det verkliga föremålet alla interna samtal inte kommer att avlyssnas genom ombud.

| |
Linux (kurs)
Komplett av öppen källkod-system. Från 49 €. |
| |
PHP (kurs)
Fullständig kurs för att skapa dynamiska webbplatser. Från 49 €. |
| |
Ruby och Ruby on Rails (kurs)
Skapa program och webbapplikationer med Ruby och RoR. Från 39 €. |