Spring-AOP

27 篇文章 0 订阅

1 AOP

Aspect Oriented Programming 面向切面编程

AOP和动态代理:汉堡模型 → AOP就是根据动态代理去实现的
作用范围:

1、动态代理:某一个委托类的全部方法

2、AOP:容器中的组件当中的选中的方法,更加灵活


2 编程术语
在这里插入图片描述


3 案例

3.1 手动增强

jdk动态代理、cglib动态代理

spring环境下不需要额外引入cglib依赖

aop使用的是jdk动态代理还是cglib动态代理 → 我都要


3.2 SpringAOP(半自动)
在这里插入图片描述
3.2.1 引入依赖
在这里插入图片描述
3.2.2 提供委托类并注册组件

注意: 组件id是类名的首字母小写
在这里插入图片描述
3.2.3 提供Advice类并注册组件

implements MethodInterceptor

3.2.4 注册Proxy组件

ProxyFactoryBean → Proxy
在这里插入图片描述

3.2.5 单元测试
在这里插入图片描述
3.3 AspectJ(全自动)

都需要 pointcut 和 advice

3.3.1 引入依赖
在这里插入图片描述
3.3.2 配置文件中引入aop的schema
在这里插入图片描述
3.3.3 pointcut切入点( 前提:容器中的组件的方法范围内)

切入点表达式 → 匹配方法是否在范围内

3.3.3.1 execution(方法名)

execution(修饰符 返回值 包名、类名、方法名(形参))
1、能否省略
2、特殊功能
3、能否通配

3.3.3.1.1 修饰符

可以省略 → 并不是代表无修饰符方法 → 任意修饰符(通配)


3.3.3.1.2 返回值

不能省略
可以使用*通配任意返回值
如果是javabean要写全类名


3.3.3.1.3 包名、类名、方法名

可以部分省略:头和尾不能省略,使用**…**来进行省略,中间的任意一部分都可以省略
能否通配:使用*来通配


3.3.3.1.4 形参

可以省略:代表是无参方法
可否通配:*和…
特殊用法:javabean要写全类名

3.3.3.1.5 配置
在这里插入图片描述
3.3.3.2 @annotation

通过自定义注解指定特定方法(容器中组件的方法范围内)
@annotation(自定义注解的全类名)

我要计算我应用程序核心算法的执行时间 → 指哪打哪

在这里插入图片描述
在这里插入图片描述
3.3.4 advisor
在这里插入图片描述
3.3.5 aspect(最常用)

提供了一些特定的通知(时间点 → 相对时间 → 委托类的方法)

3.3.5.1 通知
在这里插入图片描述
3.3.5.2 切面类

在这里插入图片描述
3.3.5.3 配置文件
在这里插入图片描述
3.3.5.4 获得参数JoinPoint
在这里插入图片描述
3.3.5.5 抛出异常的情况
在这里插入图片描述
3.3.6 aspectj的注解实现形式(aspect形式)

打开aspectj注解开关
在这里插入图片描述
3.3.6.1 指定组件为切面组件
在这里插入图片描述
3.3.6.2 切入点以方法形式存在
在这里插入图片描述
3.3.6.3 通知

3.3.6.3.1 注解的value属性
在这里插入图片描述
在这里插入图片描述
3.3.6.3.2 returning属性
在这里插入图片描述
3.3.6.3.3 throwing属性
在这里插入图片描述


4 JdbcTemplate

spring提供的操作jdbc代码的一个组件

使用JdbcTemplate就需要使用到JdbcTemplate实例,依赖于Datasource。

4.1 引入依赖

spring-jdbc(tx)
druid
mysql-connector-java
在这里插入图片描述
4.2 SE风格代码实现
在这里插入图片描述
4.3 Spring注册组件
在这里插入图片描述
4.4 Autowired注解的别样用法

可以加在方法上 → 设置参数时执行

@Autowired注解对应的方法的形参:会从容器中取出对应类型的组件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


5 补充


5.1 lombok

5.1.1引入依赖

Lombok
在这里插入图片描述

5.1.2 注解
在这里插入图片描述

5.1.3 安装插件
在这里插入图片描述

5.2 xml文件中的转义字符

xml文件中有些特殊字符是不能直接写的,而是要写他对应的转义字符
& → ‘&amp’;
> → ‘&gt’;
< → ‘&lt’;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值