2017-01-25 21 views
0

, как описано в https://docs.spring.io/spring/docs/current/spring-framework-reference/html/aop.html#aop-common-pointcutsвесна AspectJ Pointcut многоразового класса

Можно ли создать независимый класс, определяющие все и использовать срезы в его и в других аспектах, так что мы должны быть в состоянии повторно точки срезов?

Если я использую Pointcut из этого класса, я получаю сообщение об ошибке:

Caused by: java.lang.IllegalArgumentException: error at ::0 can't find referenced pointcut inServiceLayer 
    at org.aspectj.weaver.tools.PointcutParser.parsePointcutExpression(PointcutParser.java:301) 
    at org.springframework.aop.aspectj.AspectJExpressionPointcut.buildPointcutExpression(AspectJExpressionPointcut.java:207) 
    at org.springframework.aop.aspectj.AspectJExpressionPointcut.checkReadyToMatch(AspectJExpressionPointcut.java:193) 
    at org.springframework.aop.aspectj.AspectJExpressionPointcut.getClassFilter(AspectJExpressionPointcut.java:170) 
    at org.springframework.aop.support.AopUtils.canApply(AopUtils.java:194) 
    at org.springframework.aop.support.AopUtils.canApply(AopUtils.java:248) 

Но если включить этот метод в существующем аспекте, он отлично работает.

Thanks,

ответ

0

Вот что демонстрирует пример.

Существует класс SystemArchitecture, который определяет множество pointcuts и другого класса BeforeExample, AfterReturningExample, ... которые определяют советы, ссылаясь на точечные ссылки SystemArchitecture в их аннотации.

Все эти классы аннотируются с @Aspect.

+0

Это не работает, я добавил свой вопрос. – krmanish007

0

Это была моя ошибка, я не определил полное имя метода, включая имя пакета и класс.

+0

В этом проблема с распространением недостаточной информации при задании вопроса: вам нужно найти решение самостоятельно, потому что никто другой не сможет вам помочь. Поэтому в следующий раз, пожалуйста, разделите [SSCCE] (http://sscce.org/), чтобы сделать проблему воспроизводимой. Только стоп-трасса без исходного кода и конфигурации так же бесполезна, как и наоборот. ;-) P.S .: Вы можете принять свой собственный ответ, чтобы закрыть вопрос, он по-прежнему отображается как открытый. – kriegaex