2010-07-28 17 views
3

J'ai un aspect qui fonctionne correctement dans mes tests unitaires, un message de journal est imprimé à partir de la méthode actuelle, et ensuite de l'aspect appliqué. Lorsque j'exécute ma webapp, je ne vois que le résultat du conseil '@afterReturning' appliqué, ma méthode ne s'exécute pas en premier.Pourquoi mon aspect Spring AOP fonctionne-t-il dans mon test unitaire mais pas ma webapp?

Ma config:

<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:aop="http://www.springframework.org/schema/aop" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
    http://www.springframework.org/schema/aop 
    http://www.springframework.org/schema/aop/spring-aop-3.0.xsd"> 

    <aop:aspectj-autoproxy proxy-target-class="true" /> 

    <bean id="loggingAspect" class="com.mypackage.MyAspect" /> 

</beans> 

Toutes les idées?

Merci pour votre aide.

Répondre

0

Les informations que vous avez fournies ne sont pas suffisantes pour analyser. 1) Vérifiez que la méthode que vous attendez d'être intercepté par votre conseil, appartient à la classe & de haricot de printemps et non à une autre servlet ou autre classe définie à l'extérieur du ressort. Si une classe n'est pas initialisée au printemps, alors un conseil supplémentaire ne peut pas être appliqué à cette classe.

2) Vérifier qu'au-dessus de & les configs de conseil sont mis dans un contexte approprié xml pour le printemps. Comme dans le cas de spring-mvc, vous devez définir explicitement le nom de votre contexte d'application xml. Et dans ce contexte d'application xml seulement vous devez écrire des configurations aop.

3) Vérifiez si votre pointcut est approprié pour trouver la méthode exacte de classe & pour le conseil.

Voir si ces choses sont en place.