#AstuceDeCode 16 : les annotations, l’AOP et Spring

Aujourd’hui on va parler d’un problème qui m’a valu quelques arrachages de cheveux sur Spring, à savoir l’AOP, et pour être plus précis la définition des points de coupe.

Autant le dire de suite cette astuce de code va être très courte mais pourtant très importante. Enfin bref si on suit la doc de Spring disponible ici pour faire un aspect qui réagit en présence d’une annotation, la documentation indique ceci :


@Before("com.xyz.lib.Pointcuts.anyPublicMethod() && @annotation(auditable)")
public void audit(Auditable auditable) {
    AuditCode code = auditable.value();
    // ...
}

Le seul problème est qu’elle omet un détail très important, à savoir le contenu du paramètre @annotation de Spring-el. Ça paraît stupide mais c’est pourtant capital : le nom du paramètre doit correspondre exactement au nom du paramètre de la méthode. Ainsi si nous avions décidé d’appeler notre paramètre toto il aurait fallu écrire @annotation(toto) comme dans l’exemple ci-dessous.


@Before("com.xyz.lib.Pointcuts.anyPublicMethod() && @annotation(toto)")
public void audit(Auditable toto) {
    AuditCode code = toto.value();
    // ...
}

Et si vous ne respectez pas cette règle, Spring vous crachera une IllegalArgumentException avec un message assez obscur.

Cet article vous a plu ? Vous aimerez sûrement aussi :

Julien
Moi c’est Julien, ingénieur en informatique avec quelques années d’expérience. Je suis tombé dans la marmite étant petit, mon père avait acheté un Apple – avant même ma naissance (oui ça date !). Et maintenant je me passionne essentiellement pour tout ce qui est du monde Java et du système, les OS open source en particulier.

Au quotidien, je suis devops, bref je fais du dév, je discute avec les opérationnels, et je fais du conseil auprès des clients.

Son Twitter Son LinkedIn

gojul

Recent Posts

Changer de stack en 2026 : comment pivoter sans repartir de zéro.

Changer de stack ça fait peur parce qu'on ne sait pas comment s’y prendre. Ça…

13 heures ago

Remote vs bureau : le vrai coût du « full remote » sur la carrière d’un·e dev.

Ah, le télétravail... Travailler en slip (ou en pyjama licorne, on ne juge pas) avec…

2 semaines ago

Pourquoi la tendance DevOps est encore plus forte en 2026 ?

On aurait pu penser que la tendance DevOps n’était qu’une transition, portée par le Move2Cloud…

3 semaines ago

Où sont les développeuses ? Rencontre avec Camille Coutens, la dev qui veut briser l’invisibilité.

Une question simple "Où sont les développeuses ?" , une réponse complexe. C’est la question…

1 mois ago

TypeScript : pourquoi il s’est imposé, et comment l’adopter sans rupture.

Aujourd’hui, les développeurs écrivent davantage de nouveau code en TypeScript qu’en JavaScript. C’est ce que…

1 mois ago

Pourquoi Next.js est-il adopté si massivement ?

L’étude State of JS parue en 2025 montre une trajectoire claire : Next.js domine aujourd’hui…

2 mois ago