2014-02-11 2 views
0

нижеуказанным мой аспектвесна АОП ошибка 0: несвязанный

@Aspect 
public class TestAspect { 

    @Around("execution (* com.test..*(..))") 
    public void simonAspect(Joinpoint joinpoint) { 
     System.out.println(" --- Interceptor --- "); 

    } 

} 

и XML-файл

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc" 
    ... /schema/aop/spring-aop-3.0.xsd"> 

    <mvc:annotation-driven /> 

    <aop:aspectj-autoproxy /> 

    <context:component-scan base-package="com.test" /> 

    <bean 
     class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
     <property name="prefix" value="/view/" /> 
     <property name="suffix" value=".jsp" /> 
    </bean> 

    <bean class="com.test.aspect.TestAspect" /> 


</beans> 

на развертывание я получаю исключение Вызванный: java.lang.IllegalArgumentException: ошибка в :: 0 формальный unbound в pointcut

Я пытаюсь перехватить все методы классов контроллера, определенные в пакете com.test.

, когда я комментирую класс с @компонентом, ошибка не возникает, но перехватчик также не вызывается.

ответ

0
@Around("execution (* com.test..*(..))") 

должен быть

@Around("execution (* com.test.*(..))") 

или вы можете использовать Whitin как этот

@Around("within (* com.test.*)") 
+0

об изменении этой ошибки в геометрии Причина: java.lang.IllegalArgumentException: предупреждение не соответствует имени этого типа: com.test [Xlint: invalidAbsoluteTypeName] – user2775185

0

An Around аспект ожидает вас вернуть Object

Таким образом, ваш метод аспект должен изменить до

@Around("execution (* com.test..*(..))") 
public Object simonAspect(Joinpoint joinpoint) { 
    System.out.println(" --- Interceptor --- "); 

} 
0

Проблема в том, что я использовал Joinpoint вместо JoinPoint. должен быть от импорта пакета org.aspectj.lang. *.

Смежные вопросы