AOP入门案例

AOP入门案例思路分析

案例设定:测定接口执行效率
简化设定:在接口执行前输出当前系统时间
开发模式:XML or 注解
思路分析:

  1. 导入坐标(pom.xml)
  2. 制作连接点方法(原始操作,Dao接口与实现类)
  3. 制作共性功能(通知类与通知)
  4. 定义切入点
  5. 绑定切入点与通知关系(切面)
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>5.2.10.RELEASE</version>
</dependency>

<dependency>
    <groupId>org.aspectj</groupId>
    <artifactId>aspectjweaver</artifactId>
    <version>1.9.4</version>
</dependency>
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 ...");
    }
}
@Component
@Aspect
public class MyAdvice{

    // 定义切入点
    @Pointcut("execution(void com.xxx.dao.BookDao.update())")
    private void pt(){ }

    @Before("pt()") // 绑定切入点与通知关系
    public void method(){ // 定义共性功能
        System.out.println(System.currentTimeMillis());
    }
}
@Configuration
@ComponentScan("com.xxx")
@EnableAspectJAutoProxy
public class SpringConfig{

}