项目开发需要AspectJ,用了差不多两天的时间了解
核心部分一
public pointcut testAJ():
call(public void load()) &&target(org.apache.catalina.startup.Catalina)//tomcat源码函数
说明:
call(需要定位的函数)
target(目标类)
核心部分二
before() : testAJ(){
System.out.println("before servlet service");
}
after() returning : testAJ() {
System.out.println("after servlet service");
}
说明:
before()在捕捉到的方法之前执行的函数
after()在捕捉到的方法之后执行的函数
原理:核心部分一用于捕捉函数,核心部分二用于处理捕捉函数后的动作
以上是基本原理,注意:如果aspectJ文件缺少包说明,在tomcat启动时就会报non aspect错误
我实现的是捕捉tomcat启动信息中的函数从而得到tomcat的基本信息方便程序的初始化
出现的问题是在日志中不显示执行了任何动作,后来发现是pointcut声明时出错,&&了不必要的条件,当该条件不满足时整体都不满足
看来细节决定成败,要细心。