..
Ennen liikuttavaa nähdä kuinka luot heidän neuvoja ja puoli pointcuts, on erittäin tärkeää ymmärtää, miten valtakirjoja.
Välityspalvelin on yksinkertaisesti kääre (kontti), joka sisältää kohteen ja paljastaa kaikki julkiset medodi esine.
Kun vedota menetelmä välityspalvelimen tosiasiallista täytäntöönpanoa menetelmä on siirretty esine Wrap, joten läsnäolo proxy täysin läpinäkyvä käyttäjälle.
Proxy, joka käyttää Spring AOP toteuttaa kuin yksinkertaista siirtää menetelmiä käsitellä myös eri Liikkeenjohdon neuvonta.
Ymmärrämme miten proxy toteuttaa yksi hyvin yksinkertainen. Ensinnäkin Luodaan yksinkertainen käyttöliittymä:
SimpleInterface {julkinen rajapinta
public void f1 ();
public void f2 ();
}
luomme jopa yksinkertainen toteutus:
SimplePojo {public class toteuttaa SimpleInterface
@ Override
public void f1 () {
System.out.println ("F1");
f2 ();
}
@ Override
public void f2 () {
System.out.println ("F2");
}
}
Toteamme, että menetelmä f1 () voit soittaa f2 ().
Katsotaanpa nyt luoda välityspalvelinta, kuten jo sanoi, että meidän täytyy luoda kontti esineen ja paljastaa kaikki sen menetelmät, sitten proxy toteuttaa käyttöliittymä SimpleInterface ja sitten siirtää kaikki menetelmä puhelut todellinen objekti:
Simpleproxy {public class toteuttaa SimpleInterface
Yksityinen SimpleInterface delegoitu;
julkinen simpleproxy (SimpleInterface edustajaa) {
super ();
this.delegate = siirtäisi;
}
@ Override
public void f1 () {
System.out.println ("delegointi F1 ()");
delegate.f1 ();
}
@ Override
public void f2 () {
System.out.println ("delegointi F2 ()");
delegate.f2 ();
}
}
Meidän yksinkertainen esimerkki, proxy ei on tulostaa viestin, jossa hän sanoo, että on siirtää puhelun.
Luomme nyt tärkein testi nähdä, miten meidän proxy:
public class Main {
public static void main (String [] args) {
/ / Luo esiintymän papu
SimpleInterface realBean SimplePojo = uusi ();
System.out.println ("##### papu #####");
realBean.f1 ();
System.out.println ();
realBean.f2 ();
System.out.println ();
/ / Luo esimerkiksi välityspalvelimen
SimpleInterface proxy = uusi simpleproxy (SimplePojo uusi ());
System.out.println ("##### proxy #####");
proxy.f1 ();
System.out.println ();
proxy.f2 ();
}
}
Ensimmäinen koodiosion antanut seuraavan lähdön:
##### Pavut ##### F1 F2 F2Nyt voisi olettaa, että lähtö toisen lohkon on seuraava:
##### Proxy ##### Delegointi F1 () F1 Delegointi F2 () F2 Delegointi F2 () F2Invce ei! Tuloste on seuraava:
##### Proxy ##### Delegointi F1 () F1 F2 Delegointi F2 () F2Kuten näemme, että menetelmä puhelu f1 () on menetelmä f2 () ei kulje proxy, koska kun olet siirtänyt toteuttaminen menetelmän todellinen objekti kaikki sisäiset puhelut eivät siepata valtakirjalla.

| |
Linux (Course)
Täydellinen opas avoimen lähdekoodin järjestelmä. Alkaen 49 €. |
| |
PHP (Course)
Täysi tietenkin luoda dynaamisia Web-sivustoja. Alkaen 49 €. |
| |
Ruby ja Ruby on Rails (Course)
Luominen ohjelmisto-ja web-sovellusten kanssa Ruby ja RoR. Alkaen 39 €. |