1.在spring配置文件中开启@AspectJ 注解支持
<aop:aspectj-autoproxy/>
2.定义一个切面类,同时给这个类添加@AspectJ 和@Component注解
@Component
@Aspect
public class TestAop {
}
@Component注解是让spring容器将这个类自动扫描为bean,所以需要配置了spring注解支持和扫描支持。当然,也可以采用xml方式进行配置bean。
3.在切面类里定义切点
@Component
@Aspect
public class TestAop {
@Pointcut("execution(* com.someapp.dao.*.*(..))")
public void dataAccessOperation() {}
}
execution(* com.someapp.dao..(..))是切点表达式,具体可以查看spring相关文档说明
4.给指定的切点定义通知
@Component
@Aspect
public class TestAop {
@Pointcut("execution(* com.someapp.dao.*.*(..))")
public void dataAccessOperation() {}
@Before("dataAccessOperation()")
public void doAccessCheck() {
// ...
}
}
@Before只是一种通知,还有其他几种通知,具体可参见spring相关文档。