logo

Tutoriel AOP de printemps

  1. Qu’est-ce que l’AOP ?
  2. Où utiliser l’AOP ?
  3. Concepts et terminologie AOP
  4. Implémentation de l'AOP de printemps

Programmation orientée aspect (AOP) complète les POO dans le sens où il offre également de la modularité. Mais l’unité clé de la modularité est l’aspect plutôt que la classe.

AOP divise la logique du programme en parties distinctes (appelées préoccupations). Il est utilisé pour augmenter la modularité en préoccupations transversales .

UN préoccupation transversale est un problème qui peut affecter l'ensemble de l'application et doit être centralisé dans un seul endroit dans le code autant que possible, comme la gestion des transactions, l'authentification, la journalisation, la sécurité, etc.


Pourquoi utiliser l'AOP ?

Il fournit un moyen enfichable d'ajouter dynamiquement une préoccupation supplémentaire avant, après ou autour de la logique réelle. Supposons qu'il y ait 10 méthodes dans une classe comme indiqué ci-dessous :

 class A{ public void m1(){...} public void m2(){...} public void m3(){...} public void m4(){...} public void m5(){...} public void n1(){...} public void n2(){...} public void p1(){...} public void p2(){...} public void p3(){...} } 

Il existe 5 méthodes qui partent de m, 2 méthodes qui partent de n et 3 méthodes qui partent de p.

Comprendre le scénario Je dois conserver un journal et envoyer une notification après avoir appelé des méthodes qui commencent à partir de m.

Problème sans AOP Nous pouvons appeler des méthodes (qui tiennent un journal et envoient des notifications) à partir des méthodes commençant par m. Dans un tel scénario, nous devons écrire le code dans les 5 méthodes.

Mais, si le client dit à l'avenir, je n'ai pas besoin d'envoyer de notification, vous devez modifier toutes les méthodes. Cela conduit au problème de maintenance.

Solution avec AOP Nous n'avons pas besoin d'appeler des méthodes à partir de la méthode. Nous pouvons maintenant définir les préoccupations supplémentaires telles que la tenue du journal, l'envoi de notifications, etc. dans la méthode d'une classe. Son entrée est donnée dans le fichier XML.

À l'avenir, si le client demande de supprimer la fonctionnalité de notification, nous devrons modifier uniquement le fichier XML. La maintenance est donc facile en AOP.

noms de villes etats-unis

Où utiliser l’AOP ?

L'AOP est principalement utilisé dans les cas suivants :

  • pour fournir des services d'entreprise déclaratifs tels que la gestion déclarative des transactions.
  • Il permet aux utilisateurs d'implémenter des aspects personnalisés.

Concepts et terminologie AOP

Les concepts et terminologies AOP sont les suivants :

  • Rejoindre le point
  • Conseil
  • Point de coupe
  • Introduction
  • Objet cible
  • Aspect
  • Intercepteur
  • Proxy AOP
  • Tissage

Rejoindre le point

Le point de jointure est n'importe quel point de votre programme tel que l'exécution de méthode, la gestion des exceptions, l'accès aux champs, etc. Spring ne prend en charge que le point de jointure d'exécution de méthode.


Conseil

Les conseils représentent une action entreprise par un aspect à un point de jointure particulier. Il existe différents types de conseils :

  • Avant les conseils : il s'exécute avant un point de jointure.
  • Après le retour des conseils : il s'exécute après qu'un point commun se soit terminé normalement.
  • Après avoir lancé des conseils : il s'exécute si la méthode se termine en lançant une exception.
  • Après (enfin) des conseils : il s'exécute après un point de jointure, quelle que soit la sortie du point de jointure, qu'il s'agisse d'un retour normal ou exceptionnel.
  • Conseils Autour : Il s'exécute avant et après un point de jointure.

Point de coupe

C'est un langage d'expression d'AOP qui correspond aux points de jointure.


Introduction

Cela signifie l'introduction d'une méthode et de champs supplémentaires pour un type. Il vous permet d'introduire une nouvelle interface à n'importe quel objet conseillé.


Objet cible

C'est l'objet, c'est-à-dire être conseillé par un ou plusieurs aspects. Il est également connu sous le nom d'objet mandaté au printemps car Spring AOP est implémenté à l'aide de proxys d'exécution.


Aspect

C'est une classe qui contient des conseils, des points de jointure, etc.


Intercepteur

C'est un aspect qui ne contient qu'un seul conseil.


Proxy AOP

Il est utilisé pour mettre en œuvre des contrats d'aspect, créés par le framework AOP. Ce sera un proxy dynamique JDK ou un proxy CGLIB dans le framework Spring.


Tissage

C'est le processus de liaison d'un aspect avec d'autres types d'applications ou objets pour créer un objet conseillé. Le tissage peut être effectué au moment de la compilation, du chargement ou de l'exécution. Spring AOP effectue le tissage au moment de l'exécution.

c'est en python

Implémentations AOP

Les implémentations AOP sont fournies par :

  1. AspectJ
  2. AOP du printemps
  3. JBoss AOP

AOP du printemps

Spring AOP peut être utilisé de 3 manières indiquées ci-dessous. Mais l’approche largement utilisée est le style d’annotation Spring AspectJ. Les 3 façons d’utiliser Spring AOP sont indiquées ci-dessous :

  1. Par Spring1.2 Ancien style (basé sur dtd) (également pris en charge dans Spring3)
  2. Par style d'annotation AspectJ
  3. Par style de configuration Spring XML (basé sur un schéma)

Liens de référence

Source AOP de printemps
API AOP SpringSource
Wikipédia