邯郸市环保局网站建设项目环境,软件代理销售公司,网站技术部门架构,罗湖实惠的网站建设费用AOP和Spring AOP介绍 文章目录AOP和Spring AOP介绍一.AOP简介二. 传统开发存在的弊端三. AOP实现原理四.Spring AOP五.AOP相关术语一.AOP简介
AOP为Aspect Oriented Programming的缩写#xff0c;意为#xff1a;面向切面编程。是OOP的延续#xff0c;是软件开发中的一个热…AOP和Spring AOP介绍 文章目录AOP和Spring AOP介绍一.AOP简介二. 传统开发存在的弊端三. AOP实现原理四.Spring AOP五.AOP相关术语一.AOP简介
AOP为Aspect Oriented Programming的缩写意为面向切面编程。是OOP的延续是软件开发中的一个热点也是Spring框架中的一个重要内容函数式编程的一种衍生范型AOP 通过预编译方式和运行期动态代理实现程序功能的统一维护利用AOP可以对业务逻辑的各个部分进行隔离从而使得业务逻辑各部分之间的耦合度降低提高程序的可重用性同时提高了开发的效率。
二. 传统开发存在的弊端
假设你正在开发的项目中需要在保存之前添加一个功能例如权限校验此时需要手动在项目中所有保存功能之前添加权限校验我们可以通过抽取一个基类里面写了权限校验功能让所有类继承此类这是传统面向对象继承的方式开发需要改动大量代码 我们的目标: 不破坏原来的类生成一个代理类在原来类的基础上进行增强可以实现随时添加随时取消添加的功能
解决: AOP通过代理类采用横向抽取机制取代了传统纵向继承
三. AOP实现原理
JDK动态代理 JDK动态代理的实现是在运行时根据一组接口定义使用Proxy、InvocationHandler等工具类去生成一个代理类和代理类实例。 cglib动态代理 cglib是一个第三方开源代码生成类库使用时一定要在spring的核心包当中引入cglibcglib动态添加类的属性和方法采用的是继承方式来产生的代理对象
四.Spring AOP
Spring使用这种思想最好的框架Spring的AOP有自己的实现方式但是这种方式非常繁琐因此Spring放弃了自己传统的方式 引入AspectJ作为自身AOP的开发AspectJ 是一个AOP的框架
五.AOP相关术语 Joinpoint:连接点 1可以被拦截到的方法 2 能够被增强的方法这些方法就可以称为是连接点 其中save() ,delete() ,update() ,find()都是 Joinpoint连接点 Pointcut:切入点 真正被拦截增强的方法 其中的save()方法就是 Pointcut切入点 Advice通知 增加的内容通常都是封装成一个方法 这个方法我们就称为通知 其中的checkPrivilege()方法就是Advice通知 Introduction:引介 1类层面的增加 2给原有的类添加一些新的属性方法 3在开发中通常都是给某个方法进行增加 Target:被增加的对象 其中GoodsDao就是Target被增加的对象 Weaving:织入 将通知应用到目标对象的过程 Proxy:代理对象 Aspect:切面 多个通知和多个切入点的集合