1. 导入AOP相关坐标:
<dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>1.6.8.RELEASE</version> </dependency>
前提先导入spring-context坐标(包含spring-aop坐标)
2. 定义dao接口与实现类
public interface BookDao {//接口类
public void save();
public void update();
}
@Repository("bookDao")
public class BookDaoImpl implements BookDao {//实现类
public void save() {
System.out.println(System.currentTimeMillis());
System.out.println("book dao save ...");
}
public void update(){
System.out.println("book dao update....");
}
**3. **定义通知类,制作通知
public class MyAdvice {
private void pt(){}
public void method(){
System.out.println(System.currentTimeMillis());
}
**4.**定义切入点
public class MyAdvice {
@Pointcut("execution(void com.springstudy.dao.BookDao.update()")
private void pt(){}
}
5. 绑定切入点与通知关系,并制定通知添加到原始链接的具体执行位置
public class MyAdvice {
@Pointcut("execution(void com.springstudy.dao.BookDao.update()")
private void pt(){}
@**Before**("pt()")
public void method(){
System.out.println(System.currentTimeMillis());
}
}