02上课笔记--SpringAOP

    科技2022-07-11  107

    SpringAOP

    面向切面的编程:把程序重复的代码抽取出来,在需要执行的时候,使用动态代理技术在不修改源代码的基础上对已有方法进行增强。

    知识点:

    ● Aspect 表示切面。切入业务流程的一个独立模块。一个应用程序可以拥有任意数量的切面。 ● Join point 表示连接点。也就是业务流程在运行过程中需要插入切面的具体位置(被拦截到的点。spring中具体指类的方法)。

    ● advice

    ​ 前置通知(Before)

    ​ 后置通知(AfterReturning) :在目标成功之后执行

    ​ 异常通知(AfterThrowing) :在代码异常时执行

    ​ 最终通知(After):在执行方法后执行

    ​ 环绕通知(Around)

    举例子:

    基础功能

    在原有基础上进行增加功能,实现的样子如下:

    先写一个Aspect.java类,切面类

    @Aspect public class MyAspect { @Before("execution(* nuc.edu.aop.Service.Impl.UserServiceImpl.printUser(..))") public void before() { System.out.println("before..."); } }

    在主函数中实例化

    用注解@Bean进行实例化之后MyAspect中的代码都属于监听状态,然后当Controller层要调用printUser这个方法时,MyAspect中的@Before就会监听到,在printUser这个方法执行之前进行执行。

    @Bean(name="myAspect") //在实例化之后 MyAspect.java中的代码都被执行,都处于监听状态 public MyAspect initMyAspect(){ return new MyAspect(); }

    定义切点,Pointcut,简化表达式

    Processed: 0.010, SQL: 8