我想要一个具有拦截所有方法调用的方面的 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 依赖项来实现方面的工作?
一些可能很重要的事情:
- 我打算使用 AspectJ(如果需要,可能是 Spring AOP),
- 客户端可能是具有正常
web.xml
等的 Web 应用程序。 - 客户端是用 Maven 构建的
- 我希望客户端尽可能易于配置——在我最初的想法中,一个 Maven 依赖项就足够了。
- “Annotation JAR”将包含一个网络片段,因此可以在
ServletContextListener
那里声明一些自定义..
有任何想法吗?