栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > Java

Spring Aop学习

Java 更新时间:发布时间: 百科书网 趣学号

Aop学习
  • 一,AOP的概念
  • 二,AOP的底层原理
    • 1,AOP底层使用动态代理
  • 三,AOP的术语:
  • 四,实现AOP操作前的准备工作
  • 五,AOP操作
  • 六,增强类优先级的设置
  • 七,完全使用注解开发

一,AOP的概念

Aop的作用:

  • 面向切面编程,利用Aop可以对业务逻辑的各个方面进行隔离,通俗点就是当你想对原方法内的内容做一些补充,可以不必在原方法的代码做修改(大大降低了代码的耦合度,提高了程序的可重用性,提高了代码的编写效率)
二,AOP的底层原理 1,AOP底层使用动态代理

第一种: 有接口情况,使用 JDK 动态代理

用Proxy类中的这个静态构造方法
创建指定接口的代理类的实例(这里的代理类其实就是实现这个接口的类)

下面是所有代码:





所以method可以直接调用invoke()方法去执行已被UserDaoImpl实现类继承后并增强了(方法体中添加了一些功能)的UserDao接口中的add()方法

第二种:没有接口情况,使用 CGLIB 动态代理

其实类似于子类继承并重写父类方法的过程,具体参考java基础中子类继承父类方法并重写的代码

三,AOP的术语:


四,实现AOP操作前的准备工作

  • 注意:图中 … 代表方法中的参数,写代码时可以直接这样写
  • 注意:切入点表达式中权限修饰符可以省略
  • 图中的*号表示任意返回类型,就是可以表示任意返回类型

  • 图中方法名改为了*表示对类中所有方法进行加强
五,AOP操作



创建一个spring文件并对其做出以下配置

在User类和UserProxy类中均使用注解 @Component 创建对象默认对象的名字为类的首字母小写


在增强类中添加注解 @Aspect 生成代理对象


然后在Spring配置文件中开启生成代理对象

有5中类型的通知:
分别是:


重点: 相同切入点抽取

所有通知的value值都可以写切入点中的方法名称(pointdemo方法),就可以对切入点路径中的add()方法进行"增强"

  • 作用:
    我认为这种相同切入点的作用是减少修改次数
    比如:你要修改运行别的包下类的增强方法,然后你写了"execution(* com.Spring.test.aopanno.User.add(…))"1000次
    这样修改量太大了,但如果你用这种相同切入点的方法只需修改切入点中的方法路径即可
六,增强类优先级的设置

和之前的注解一样均写在类的上方

七,完全使用注解开发

创建配置类,不用xml配置文件

注意:本文大量引用了尚硅谷Spring5课程讲义中的笔记。

转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/889026.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号