我们还可以用注解的方式来写asepctj. 但是需要加入aspectjweave.jar。用法还是一样,就不想多将了,给个demo吧。
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
@Aspect
public class AnnotaionAspect {
@Pointcut("execution(* com.ubs.ifop.application.ep..*.*(..))")
public void epAspectjPkg(){
}
@Pointcut("call(* com.ubs.ifop.application.ep.aspectj.test.Config$IValue.get*(String,String))")
public void ivalueAspectj(){}
@Pointcut("cflow(ivalueAspectj()) && !within(AnnotaionAspect)")
public void actuallyPoint(){}
@Before("actuallyPoint() && ivalueAspectj()")
public void testExecute(){
System.out.println("aaaaaaaaaaaaa");
}
}
注意哦,这个仍然需要用aspectj 自己的编译器哦。 怎么样?是不是突然发现Spring AOP就是这么写的? 对了,不过的是Spring AOP需要将切面用Ioc容器来管理,但是aspectj不用,你只需要用他自己的编译器即可。~