..


Sponsoroidut linkit

AOP - Välityspalvelimet

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









 F2



Nyt voisi olettaa, että lähtö toisen lohkon on seuraava:





 ##### Proxy #####







 Delegointi F1 ()







 F1







 Delegointi F2 ()







 F2









 Delegointi F2 ()







 F2



Invce ei! Tuloste on seuraava:





 ##### Proxy #####







 Delegointi F1 ()







 F1







 F2









 Delegointi F2 ()







 F2



Kuten 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.
Tästä syystä et voi luoda neuvoja menetelmistä, joita kutsutaan muista menetelmiä esineen tai pikemminkin voidaan luoda vain, jos näitä menetelmiä käyttävät ulkoisia objekteja, koska muuten neuvoja ei suoriteta.
Proxy

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