美文网首页
7.13_19期AOP入门案例

7.13_19期AOP入门案例

作者: 萧修 | 来源:发表于2023-07-18 01:00 被阅读0次

本文实现不改动源代码,实现每个方法执行之前打印系统时间

save方法里面含有,我们让update也具备这个功能

public class BookDaoImpl implements BookDao {
    public void save() {
        //记录程序当前执行(开始时间)
        Long startTime = System.currentTimeMillis();
        System.out.println(startTime);
        System.out.println("book dao save...");
    }

    public void update() {
        System.out.println("book dao update...");
    }

    public void delete() {
        System.out.println("book dao delete...");
    }

    public void select() {
        System.out.println("book dao select...");
    }
}

首先创建AOP的java文件,在以下例子代码中,
第一个注解@Component用于加载文件
第二个注解@Aspect告诉程序此bean对象作为切面使用

第三个切入点@Pointcut用于执行在那个包下,执行那个方法,插入到连接点

第四个注解@Before方法之前,里面绑定切入点和通知的关系,叫切面。下面执行的代码为通知,也是共性代码

思考,如果多个切入点怎么做?

@Component
@Aspect
public class MyAdvice {
    //切入点,链接连接点
    @Pointcut("execution(void com.itheima.dao.BookDao.update())")
    private void pt(){};

//    2、共性代码,通知,将通知和切入点绑定,切面
    @Before("pt()")
    public void method(){
        Long startTime = System.currentTimeMillis();
        System.out.println(startTime);
    }
}

相关文章

网友评论

      本文标题:7.13_19期AOP入门案例

      本文链接:https://www.haomeiwen.com/subject/yjlpudtx.html