La configuration AOP Spring XML

AOP Aspect Programmation à savoir Aspect Oriented Programme Oriental

Tout d'abord à un marronnier:

 <aop:config>
        <aop:pointcut id="loggerCutpoint"
            expression=
            "execution(* com.how2java.service.ProductService.*(..)) "/>
         
        <aop:aspect id="logAspect" ref="loggerAspect">
            <aop:after pointcut-ref="loggerCutpoint" method="log"/>
        </aop:aspect>
  </aop:config> 

Le processus de configuration est quel est le sens de celui-ci?

<aop:pointcut id="loggerCutpoint" expression="execution(* com.how2java.service.ProductService.*(..)) "/>

Cette phrase est un point d'entrée de l' instruction, id point d'entrée appelé loggerCutPoint, utilisé pour marquer le point de départ, cette expression dit: rencontrer plus tard dans la méthode d'expression appelée, pour mener à bien la section de fonctionnement, similaire à celui déclenché la coupe:
la première * représentants reviennent tout type
com.how2java.service.ProductService. * indique un paquet de nom de la méthode com.how2java.service.ProductService au début de la classe (second moyen * toute méthode, wildcards savoir certainement) (...) la représentation des paramètres tout nombre et le type

Il est tout simplement, aussi longtemps que toute une com.how2java.service fonction de cette classe de package ProductService est appelé, quel que soit votre valeur de retour qui va déclencher l'interrupteur, je dois procéder à la section, qui est la fonction auxiliaire, mais l'accessibilité Qu'est-ce qui est, les deux phrases suivantes:

<aop:aspect id="logAspect" ref="loggerAspect">
  <aop:after pointcut-ref="loggerCutpoint" method="log"/>
</aop:aspect>

Ces deux est la définition d'une section, il est dit que, tant que le commutateur de déclenchement sera de réaliser la section, fait référence à la section où la section dite, est une méthode de classe seulement, sur faire ce grand. . .
id nom du nom de la section, ref est la classe se réfère à des méthodes dont le nom est la voie de la méthode représentée,
pointcut-ref = « loggerCutpoint » Ceci est exprimé (une coupe I cette section est au- dessus du point de l' association Point de coupure peut être associé à de multiples facettes de coupe ne peut être associé à une méthode), juste au- dessus du point de coupure est déclenché, je suis venu ici pour effectuer certaines fonctions auxiliaires, et d' interruption fait que le microcontrôleur, après le déclenchement représente le point de départ plus tard l' exécution de l'interruption me, bien sûr, auparavant, un total de cinq avant, après, après-retour, après-jeter, autour.

Derrière les paramètres de la méthode, vous pouvez également ajouter la liste des paramètres.

Début du texte
fonctionnalité du site est divisé en fonctions principales et secondaires, les fonctions auxiliaires appelées coupe
procédé AOP deux étapes:
1, insérer un point d'entrée dans la classe affaires, 2 à associer le point d'entrée et de la classe de coupe

classe affaires est la classe de base, est la fonction principale du site, l'accessibilité est coupée, les journaux, les statistiques et similaires

Par la configuration peut être réalisée, lorsqu'un appel de méthode, ce qui déclenche la mise en œuvre d'autres méthodes, comme la surveillance méthode cible, vous sont exécutés, ce qui a déclenché mon exécution.

terminologie AOP

1, la notification:
section de notification définit le travail à faire et quand le contenu du travail fait, est ce qu'il faut faire quand une fonction auxiliaire, le code de fonction est précisément ce que
les cinq types
Before-- notification d'appel avant l'appel de méthode
After-- méthode complète après avoir appelé avis, quel que soit le succès de la mise en œuvre de la méthode de
notification d'appel après la mise en œuvre réussie de la méthode après returning--
méthode de notification lève une exception après la throwing-- après
Around-- avis méthode enveloppées notifié l'avis de avant et après l' appel des appels de méthode exécuter un comportement personnalisé
avant les quatre bien compris, le dernier
autour d' une exécution de face coupée sera contrôlée avant et après la fonction est exécutée,
ce qui suit est une fonction de la section de journal à exécuter, il y a une fonction de journal de ce paramètre JoinPoint peut être comprise comme un point d' arrêt, celui du milieu est le représentant du programme est en cours d' exécution sous surveillance, le programme en cours d' exécution est contrôlé, le paramètre peut le remplacer, c'est un endroit puissant autour, si le programme suivi, exécutez entrée de temps haha est une chaîne comme argument, mais après la méthode du journal, la Le numéro sera remplacé par le abc

public Object log(ProceedingJoinPoint joinPoint) throws Throwable {
        System.out.println("我在被监视程序之前。。。");
        Object object = joinPoint.proceed(new Object[]{"abc"});
        System.out.println("我在被监视程序之后。。。" );
        return object;
    }

2, le point de connexion:
lors de l' exécution d' une fonction normale, peut être insérée dans le point de coupe. Il peut être utilisé comme point d'entrée pour le point. points candidats.
Point de connexion peut être un appel de méthode, une exception est levée, même lors de la modification des champs à ces points, il est possible d'effectuer la coupe.

3, section:
Définition: section est d'informer et de coupure point de points de collecte, de notification et de coupe définissent ensemble une section de toutes les fonctionnalités - ce qu'elle est, quand et où remplir sa fonction.
section Avertissement:
Au printemps, la section est une notification contenant l'objet et le point tangent, est un haricot, les champs et les méthodes Bean est la section de l'état et le comportement, mais aussi grâce à la configuration pour atteindre les points d'entrée spécifiés et notification
en xml , coupe à l' aide aop: aspect précise balise, attribut ref est utilisé à la section de référence pour soutenir Bean. Ce haricot qui est utilisé pour exécuter des fonctions auxiliaires pour le faire.

4, le point rognure:
Définition: Si vous remarquez HCT défini le « quoi » et « quand ». Ensuite , le point de coupure pour définir le « où ». Il correspond au point de tangence à un préavis ou le tissage d'une pluralité de points de connexion. Habituellement , la classe explicite ou méthode pour spécifier le point de tangence.
Rôle: Lieu de définir les applications (notifier quel point de connexion)
points d'entrée annoncez:
le point de départ est un haricot au printemps.
point de tangence de déclaration est définie de trois façons:
1) dans aop: config en utilisant les balises Aop: pointcut déclare un point d'entrée Bean, le point de départ peut être une pluralité de facettes utilisées pour le besoin de point de départ pour partager l'utilisation du meilleur mode d'utilisation, le point d'entrée est spécifiée en utilisant l'attribut id nom Bean, attribut utilisation pointcut-ref est défini dans l'avis point d'entrée référencé par l'identifiant, attribut d'expression spécifie l'expression pointcut

<aop:config>  
   <aop:pointcut id="pointcut" expression="execution(* cn.javass..*.*(..))"/>  
   <aop:aspect ref="aspectSupportBean">  
      <aop:before pointcut-ref="pointcut" method="before"/>  
   </aop:aspect>  
</aop:config>  

2) Dans aop: aspect en utilisant les mots - clés Aop: pointcut déclarer un point d'entrée Bean, le point de départ peut être une pluralité de facettes, mais sont généralement seulement le point de départ de la section utilisée, bien entendu, aussi être utilisé autre section, mais de préférence ne pas utiliser comme point d'entrée en utilisant l'attribut id pour spécifier le nom de Bean, l' utilisation attribut pointcut-ref est défini dans l'avis point d'entrée référencé par l'identifiant, attribut d'expression spécifie l'expression pointcut:

<aop:config>  
 <aop:aspect ref="aspectSupportBean">  
    <aop:pointcut id=" pointcut" expression="execution(* cn.javass..*.*(..))"/>  
    <aop:before pointcut-ref="pointcut" method="before"/>  
 </aop:aspect>  
</aop:config>  

3) point d'entrée anonyme Bean, par attribut spécifie le point d'action d'expression de notification de point d'entrée dans la déclaration, le point d'entrée est le point d'entrée anonyme, pour être utilisé dans l'avis:

<aop:config>  
 <aop:aspect ref="aspectSupportBean">  
     <aop:after pointcut="execution(* cn.javass..*.*(..))" method="afterFinallyAdvice"/>  
 </aop:aspect>  
</aop:config>  

5, l'introduction de: méthode introduction nous permet d'ajouter des attributs aux classes existantes

6, le tissage:
section tissage est appliquée à l'objet cible pour créer un processus d'objet proxy. L' article est tissé dans l'objet cible au point de connexion spécifié, peut être tissé en une pluralité de points dans le cycle de vie de l'objet cible de
compilation - section est tissé dans le temps de compilation de la classe cible, cette approche nécessite compilateur spéciale. Le compilateur AspectJ tissage est tissé en coupe de cette manière.
Charger classe - La classe est chargée dans la machine virtuelle Java dans la section, cette approche nécessite chargeur de classe spéciale avant de pouvoir utiliser la classe cible améliorée bytecode est introduit dans la classe cible. AspectJ5 de LTW soutient cette façon de tissage
course - l'aspect est tissé à un moment donné pendant la course d'application. Dans des circonstances normales, lorsque la section de tissage, contenant AOP ciblera les objets créer dynamiquement objet proxy. Spring AOP est ainsi la section de tissage.

Publié 444 articles originaux · louange gagné 15 · vues 10000 +

Je suppose que tu aimes

Origine blog.csdn.net/zt2650693774/article/details/103785766
conseillé
Classement