从方面处理中排除架构服务
Exclude architectural services from being processed by aspect
我正在创建一个方面来包装我的服务,但我也在包下定义了一些服务
com.foo.arch
我的申请 类 将改为
com.foo
请注意 arch 是 com.foo 的子包,但我不能输入 "arch" 关键字 before.Isn 没有切入点表达式:
All classess under com.foo not having "arch" as third package?
考虑一个接口SampleService
public interface SampleService {
void test();
}
在这三个包中有 3 个实现
com
com.foo
com.foo.arch
要排除 arch
包的一个方面和 com
和 com.foo
下的唯一建议 类 如下
@Component
@Aspect
public class ExcludeAspect {
@Around("execution(* test()) && !within(com.foo.arch.*)")
public void adviceTestMethod(ProceedingJoinPoint pjp) throws Throwable {
System.out.println("Adviced");
pjp.proceed();
}
}
参考:
within
Combining Pointcut Expressions
希望这对您有所帮助
将这个添加到你的切入点怎么样?
within(com.foo..*) && !within(com.foo.arch..*)
这将捕获 com.foo
的所有子包,com.foo.arch
及其各自的子包除外。
如果您只想要 com.foo
而根本不需要子包,则只需:
within(com.foo.*)
我正在创建一个方面来包装我的服务,但我也在包下定义了一些服务
com.foo.arch
我的申请 类 将改为
com.foo
请注意 arch 是 com.foo 的子包,但我不能输入 "arch" 关键字 before.Isn 没有切入点表达式:
All classess under com.foo not having "arch" as third package?
考虑一个接口SampleService
public interface SampleService {
void test();
}
在这三个包中有 3 个实现
com
com.foo
com.foo.arch
要排除 arch
包的一个方面和 com
和 com.foo
下的唯一建议 类 如下
@Component
@Aspect
public class ExcludeAspect {
@Around("execution(* test()) && !within(com.foo.arch.*)")
public void adviceTestMethod(ProceedingJoinPoint pjp) throws Throwable {
System.out.println("Adviced");
pjp.proceed();
}
}
参考: within
Combining Pointcut Expressions
希望这对您有所帮助
将这个添加到你的切入点怎么样?
within(com.foo..*) && !within(com.foo.arch..*)
这将捕获 com.foo
的所有子包,com.foo.arch
及其各自的子包除外。
如果您只想要 com.foo
而根本不需要子包,则只需:
within(com.foo.*)