spring中基于AOP的基本配置

Aop的概念

在不修改原有代码的情况下 增强跟主要业务没有关系的公共功能代码到 之
前写好的方法中的指定位置 这种编程的方式叫AOP。
注意:AOP的底层用的代理,代理是一种设计模式
代理分为静态代理和动态代理

静态代理

在这里插入图片描述
在这里插入图片描述
静态代理需要自己建立一个代理类
在这里插入图片描述
测试类
注意:
静态代理的弊端:需要为每一个被代理的类创建一个“代理类”,虽然这种方式可以实现,但是成本太高。

动态代理

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
动态代理公共的静态代码块
在这里插入图片描述
注意:动态代理(AOP的底层是用的动态)
jdk动态代理 :必须保证被代理的类实现了接口,
cglib动态代理 :不需要接口

AOP的核心概念及术语

切面(Aspect): 指关注点模块化,这个关注点可能会横切多个对象。
事务管理是企业级Java应用中有关横切关注点的例子。 在Spring AOP
中,切面可以使用通用类基于模式的方式(schema­based approach)或
者在普通类中以@Aspect注解(@AspectJ 注解方式)来实现。
连接点(Join point): 在程序执行过程中某个特定的点,例如某个方
法调用的时间点或者处理异常的时间点。在Spring AOP中,一个连接点总
是代表一个方法的执行。
通知(Advice): 在切面的某个特定的连接点上执行的动作。通知有多
种类型,包括“around”, “before” and “after”等等。通知的类型将在后面的
章节进行讨论。 许多AOP框架,包括Spring在内,都是以拦截器做通知模
型的,并维护着一个以连接点为中心的拦截器链。
切点(Pointcut): 匹配连接点的断言。通知和切点表达式相关联,并
在满足这个切点的连接点上运行(例如,当执行某个特定名称的方法
时)。切点表达式如何和连接点匹配是AOP的核心:Spring默认使用
AspectJ切点语义。
引入(Introduction): 声明额外的方法或者某个类型的字段。Spring
允许引入新的接口(以及一个对应的实现)到任何被通知的对象上。例
如,可以使用引入来使bean实现 IsModified接口, 以便简化缓存机制(在
AspectJ社区,引入也被称为内部类型声明(inter))。
目标对象(Target object): 被一个或者多个切面所通知的对象。也被
称作被通知(advised)对象。既然Spring AOP是通过运行时代理实现
的,那么这个对象永远是一个被代理(proxied)的对象。
AOP代理(AOP proxy):AOP框架创建的对象,用来实现切面契约
(aspect contract)(包括通知方法执行等功能)。在Spring中,AOP代
理可以是JDK动态代理或CGLIB代理。
织入(Weaving): 把切面连接到其它的应用程序类型或者对象上,并
创建一个被被通知的对象的过程。这个过程可以在编译时(例如使用
AspectJ编译器)、类加载时或运行时中完成。 Spring和其他纯Java AOP
框架一样,是在运行时完成织入的。

AOP的通知类型

前置通知,后置返回通知,后置异常通知,后置通知,环绕通知

Spring AOP的简单配置

在ioc的基础上添加pom依赖
AOP的基本依赖配置
编写配置
要加入扫描包和开启注解AOP功能
在这里插入图片描述
设置程序中的切面类
在类中加入@Aspect注解,并加入Compoent注解将其注入到Spring容器中
在这里插入图片描述

Aop的基本实现方式

在这里插入图片描述
在这里插入图片描述
测试类

什么是AOP?

在不修改原有代码的情况下 增强跟主要业务没有关系的公共功能代码到 之
前写好的方法中的指定位置 这种编程的方式叫AOP。

JDK动态代理和CGLIB动态代理的区别

JDK动态代理需要实现接口,而CGLIB动态代理不需要实现接口

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值