Quelqu'un peut-il expliquer ce que je dois faire pour mettre en œuvre ma propre annotation qui ajouterait des fonctionnalités à mes demandes Web?
Par exemple: P>
@Controller public class MyController { @RequestMapping("/abc") @RequiresSomeSpecialHandling public void handleSecureRequest() { } }
3 Réponses :
Ce type d'annotations (qui ajoutez une fonctionnalité supplémentaire lorsqu'on invoque une méthode) ressemble à des annotations qui déclenchent un conseil AOP.
@see printemps Référence Chapitre 7. Programmation orientée Pointe orientée avec printemps P>
L'idée est d'utiliser l'annotation pour déclencher les conseils de l'AOP. P>
J'aime: p>
Merci. Oui, AOP est sur ma liste, mais j'aimerais essayer de faire une annotation et de réutiliser autant d'installations MVC que possible.
@Rustyx: Oui, c'était l'idée de: utiliser l'annotation pour déclencher les conseils de l'AOP, voir ma réponse étendue pour l'illustrer.
Je trouve @nannotation code> pour être utile dans l'écriture des expressions de points de pointe.
Je ne veux pas @pointcut code>, je veux
@MyOnnotation code>.
@Rustyx @pointcut code> est (l'une des) syntaxe de la syntaxe pour définir une pointe de pointe
Si la mise en cache est l'un de vos objectifs, jetez un coup d'œil à la @ kechable annotation (et ses frères et sœurs @cacheput code>,
@cachetevict code> et
@caching < / code>), disponible au printemps 3.1. P>
Désolé, votre réponse est inutile pour moi. L'annotation @nocache dans mon exemple concernait le cache HTTP No-cache, pas la méthode cache, et ce n'était qu'un exemple de toute façon.
dépend de ce que vous voulez faire à la suite de @requirSomespecialHandling. Par exemple. Voulez-vous qu'il influencent les mappages de demande ou l'invocation de la méthode (c'est-à-dire des arguments de la méthode de résolution du traitement de la valeur de retour)? p>
Le support des classes annotées au printemps 3.1 est devenu beaucoup plus personnalisable. Vous pouvez parcourir quelques exemples dans Ce repo . P>
Gardez également à l'esprit qu'un intercepteur de poignée au printemps 3.1 peut lancer l'objet du gestionnaire à HandlerMéthod, ce qui vous donne accès à la méthode exacte, y compris ses annotations. Cela peut suffire à ce que vous devez faire. P>
BTW: Si "@requiresauth" n'est qu'un exemple, alors c'est bon, mais ne réinventez pas la sécurité du ressort
Ce n'était qu'un exemple - édité mon message pour rendre l'exemple plus générique.