..


Liens sponsorisés

AOP - Procurations

Avant de s'installer à voir comment vous créez avec leurs pointcuts aspect et de conseils, il est très important de comprendre comment les procurations.
Un proxy est rien de plus qu'un wrapper (conteneur) qui contient un objet et expose tous les objets publics medodi. Lorsque vous appelez une méthode sur le proxy de la mise en œuvre effective de la méthode est déléguée à l'Enveloppez objet, rendant ainsi la présence du proxy totalement transparent pour l'utilisateur.
Le proxy utilise Spring AOP de mettre en œuvre que les méthodes simple délégué traitent également des conseils de gestion différents.

Nous comprenons comment fonctionne un proxy en œuvre très simple. D'abord nous créons une interface simple:






 {Public interface SimpleInterface



	

  



 public void f1 ();



	

  



 public void f2 ();







 }



nous créons même une simple mise en œuvre:





 SimplePojo {public class SimpleInterface





  



 @ Override



  



 public void f1 () {



    



 System.out.println ("F1");



    



 f2 ();



  



 }





  



 @ Override



  



 public void f2 () {



    



 System.out.println ("F2");



  



 }







 }



Nous notons que la méthode de f1 () effectue un appel à f2 ().
Nous allons maintenant créer le proxy, comme déjà dit, nous devons créer un conteneur d'un objet et d'exposer l'ensemble de ses méthodes, puis le proxy mettra en œuvre l'interface et ensuite déléguer SimpleInterface tous les appels de méthode à l'objet réel:






 Simpleproxy {public class SimpleInterface





  



 Privé SimpleInterface délégués;





  



 publique simpleproxy (SimpleInterface délégué) {



    



 super ();



    



 this.delegate = délégué;



  



 }





  



 @ Override



  



 public void f1 () {



    



 System.out.println ("Déléguer F1 ()");



    



 delegate.f1 ();



  



 }





  



 @ Override



  



 public void f2 () {



    



 System.out.println ("Déléguer F2 ()");



    



 delegate.f2 ();



  



 }







 }



Dans notre exemple simple, le proxy ne soit imprimer un message qui dit que délègue l'appel.

Nous créons maintenant un test principal pour voir comment notre proxy:






 public class Principal {





  



 public static void main (String [] args) {



    



 / / Créer une instance de la fève

 

    



 SimpleInterface realBean SimplePojo = new ();





    



 System.out.println ("##### haricots #####");



    



 realBean.f1 ();



    



 System.out.println ();



    



 realBean.f2 ();





    



 System.out.println ();





    



 / / Création d'une instance du proxy



    



 SimpleInterface simpleproxy proxy = new (nouveau SimplePojo ());





    



 System.out.println ("##### proxy #####");



    



 proxy.f1 ();



    



 System.out.println ();



    



 proxy.f2 ();



  



 }







 }



Le premier bloc de code donne le résultat suivant:





 ##### ##### Bean







 F1







 F2









 F2



Maintenant, on s'attendrait à ce que la sortie du second bloc est le suivant:





 ##### ##### Proxy







 Déléguer F1 ()







 F1







 Déléguer F2 ()







 F2









 Déléguer F2 ()







 F2



Invce pas! La sortie se fera comme suit:





 ##### ##### Proxy







 Déléguer F1 ()







 F1







 F2









 Déléguer F2 ()







 F2



Comme nous pouvons voir l'appel que la méthode de f1 () est la méthode de f2 () ne passe pas par le proxy, car une fois que vous avez délégué l'exécution de la méthode à l'objet réel tous les appels internes ne seront pas interceptés par procuration.
Pour cette raison, vous ne pouvez pas créer des conseils sur les méthodes qui sont appelées à partir d'autres méthodes de l'objet, ou plutôt peut être créée que si ces méthodes sont utilisées par les objets extérieurs, car sinon le conseil n'est pas exécuté.
Proxy

Printemps de Java Guide
E-Learning
Linux (Cours) Linux (Cours)
Guide complet de système open-source. A partir de 49 €.
PHP (cours) PHP (cours)
Cours complet pour la création de sites Web dynamiques. A partir de 49 €.
Ruby et Ruby on Rails (Cours) Ruby et Ruby on Rails (Cours)
Créer des applications logicielles et Web avec Ruby et RoR. A partir de 39 €.
Liens sponsorisés