2010-12-06 7 views
1

Tenir compte je l'ai écrit pointcut AOP et fait une faute de frappe en elle:Vérifiez si des conseils est appliqué

@Pointcut("within(com.example.servic..*)") 
public void serviceMethod() {} 

Il est « servic » au lieu de « service ».

Je vais utiliser ce point pour appliquer une vérification de sécurité avant l'appel de la méthode de service. En raison de l'erreur d'impression, le contrôle de sécurité ne sera pas appliqué mais il n'y aura pas non plus de message d'erreur.

Il semble être très facile de faire de telles erreurs lors du refactoring par exemple. La question est: comment vérifier que les conseils sont réellement appliqués dans vos projets?

Merci d'avance!

Répondre

1

Parfait candidat pour un test unitaire.

+1

Vous voulez dire que je devrais faire une classe de test dans le package com.example.service et écrire un test unitaire qui prend en charge aop pour tester si ces méthodes de classe sont enveloppés avec des conseils? –

+0

Oui, exactement cela. –

1

La solution la plus élégante est d'utiliser un bon IDE. Si vous utilisez Eclipse, installez le AJDT plugin et vous verrez une flèche orange à gauche de toutes les lignes qui correspond à un avis Spring AOP/AspectJ et tous les conseils ont des informations sur le nombre de correspondances qu'il contient dans le code . Un autre avantage avec un plugin comme AJDT est qu'il tisse automatiquement pour vous chaque fois qu'Eclipse compile une classe.

Un exemple avec le plugin AJDT activé: alt text http://files.espenberntsen.net/stackoverflow/annotated-parameter-pointcut.png