我想拥有一个JAR,其方面可以拦截所有方法调用,例如
@Aspect
public class CoolAspect {
@Pointcut("execution(public * *(..))")
public void anyPublicMethod() { }
@Before("anyPublicMethod()")
public void advice(JoinPoint point) {
System.out.println("sign:\t" + point.getSignature());
}
}
假设以上是我拥有的并希望客户端使用的方面。我将其编译为JAR并提供给Maven。
现在,客户端将使用此jar作为依赖项,例如
<dependency>
<groupId>cool-group</groupId>
<artifactId>cool-artifact</artifactId>
<version>1.0.0</version>
</dependency>
此工件(JAR)具有上述方面。
现在可以进行方面工作只需声明一个Maven依赖项>>]
可能不重要的几件事:
web.xml
等的Web应用程序。>>ServletContextListener
。有什么想法吗?
我想要一个JAR的某个方面可以拦截所有方法调用,例如@Aspect公共类CoolAspect {@Pointcut(“ execution(public * *(..))”)public void anyPublicMethod(){} @ ...
否,这是不可能的
,因为AspectJ必须在任何客户端类之前启动。所有客户端类都应通过特殊的增强类加载器加载,该加载器将处理注释。如果使用spring-boot,请找到此问题的简单解决方案: