Spring学习-AOP

AOP概述:

什么是AOP

在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。
通俗来讲就是不修改源代码的基础上 在主干的功能里面添加新的分支功能且不影响主干功能

登录图示:

在我们登录功能中 可以使用AOP添加新的扩充单元且不影响主登录流程 因为两则没有耦合

Spring学习-AOP
代码演示:

结果:

2. 使用 CGLIB 动态代理(没有接口)

创建当前需要增强类的子类代理对象

Spring学习-AOP

AOP 操作(准备工作)

1. Spring 框架一般都是基于 AspectJ 实现 AOP 操作

AspectJ 不是 Spring 组成部分,独立 AOP 框架,一般把 AspectJ 和 Spirng 框架一起使用,进行 AOP 操作

2. 基于 AspectJ 实现 AOP 操作

  • 基于xml配置文件实现
  • 基于注解方式实现(常用)

3. 切入点表达式

  1. 切入点表达式作用:知道对哪个类里面的哪个方法进行增强
  2. 语法结构: execution([权限修饰符] [返回类型] [类全路径] [方法名称][参数]
  • 对 com.ys.dao.BookDao 类里面的 add 进行增强 execution(* com.ys.dao.BookDao.add(…))
  • 对 com.ys.dao.BookDao 类里面的所有的方法进行增强 execution(* com.atguigu.dao.BookDao.* (…))
  • 对 com.ys.dao 包里面所有类,类里面所有方法进行增强 execution(* com.atguigu.dao.. (…))

AOP具体操作

AspectJ注解(常用)

  1. 创建类,在里面定义方法
  1. 创建增强类(编写增强逻辑)

在增强类里面,创建方法,让不同方法代表不同通知类型

  1. 在 spring 配置文件中,开启注解扫描(通知配置)
/span>xml version="1.0" encoding="UTF-8"/span>>beans xmlns="http://www.springframework.org/schema/beans"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xmlns:context="http://www.springframework.org/schema/context"  xmlns:aop来源:暮同学
                                                        

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年11月7日
下一篇 2020年11月7日

相关推荐