Par*_*bay 6 java servlets aspectj spring-aop aspect
我想要一个具有拦截所有方法调用的方面的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());
}
}
Run Code Online (Sandbox Code Playgroud)
假设以上是我拥有并希望客户使用的方面。我将其编译为JAR并提供给Maven。
现在,客户端将使用此jar作为依赖项,例如
<dependency>
<groupId>cool-group</groupId>
<artifactId>cool-artifact</artifactId>
<version>1.0.0</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
该工件(JAR)具有上述方面。
现在可以通过仅声明Maven依赖项来进行方面工作?
几件重要的事情:
web.xml。ServletContextListener。有任何想法吗?
不,这是不可能的,因为 AspectJ 必须在任何客户端类之前启动。所有客户端类都应通过特殊的增强类加载器加载,该加载器将处理注释。
另一件事是Spring的AOP。它在应用程序上下文启动期间编织 bean,并且不需要特殊的类加载器。如果客户使用 spring,这将是最简单的方法。添加maven依赖,然后在应用程序上下文中配置AOP。
| 归档时间: |
|
| 查看次数: |
1274 次 |
| 最近记录: |