1.  pom.xml文件导入坐标

  <depenency>  注:此包会包含AOP的包

    <groupId>org.springframework</groupId>

    <artifactId>spring-context</artifactId>

    <version>5.2.10.RELEASE</version>

  </depenency>

  <depenency>

    <groupId>org.aspectj</groupId>

    <artifactId>aspectjweaver</artifactId>

    <version>1.9.4</version>

  </depenency>

2.  制做连接点方法
  @Repository

  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

  {

    public void method()

    {

      System.out.println(System.currentTimeMillis());

    }

  }

4.  定义切入点:切入点定义依托一个不具有实际意义的方法进行,即无参数,无返回值 ,方法体无实际逻辑

  public class MyAdvice

  {

    @Pointcut("execution(void com.feiyan.dao.BookDao.update())")

    private void pt()

    {

    }

    public void method()

    {

      System.out.println(System.currentTimeMillis());

    }

  }

5.  绑定切入步与通知关系(切面)

  public class MyAdvice

  {

    @Pointcut("execution(void com.feiyan.dao.BookDao.update())")

    private void pt()

    {

    }

    @Before("pt()")

    public void method()

    {

      System.out.println(System.currentTimeMillis());

    }

  }

6.  添加识注解

  @Component

  @Aspect

  public class MyAdvice

  {

    @Pointcut("execution(void com.feiyan.dao.BookDao.update())")

    private void pt()

    {

    }

    @Before("pt()")

    public void method()

    {

      System.out.println(System.currentTimeMillis());

    }

  }

7.  配置类添加注解

  @Configuration

  @ComponentScan("com.feiyan")

  @EnableAspectJAutoProxy

  public class SpringConfig

  {

  }