spring面向切面开发-基本注解

spring中面向千面的开发有两种方式,一是xml配置方式,二是基于注解的方式。但是这两种虽然在写法不一样,但是最终的目的都是为了要表达一个切点和这个切面的表达式要干什么。
clipboard.png
实际开发中推荐使用基于注解方式的切面配置。
主要注解:
@Aspect:作用在类上,用来标记这个类是一个切面配置类,这个类中由两个不分组成的,一个事由@PointCut注解和@Advice注解来组成。
@PointCut:主要是由pointCut expression表达式来组成的,表名了哪些类的哪些方法来植入你的代码
@Advice:主要说明了在切入点执行的什么时机来植入的,比如执行前,执行后。

clipboard.png
AOP术语:

  • 通知、增强处理(Advice)
    就是你想要新增的功能,也就是上说的安全、事物、日志等。你给先定义好,然后再想用的地方用一下。包含Aspect的一段处理代码
  • 连接点(JoinPoint)
    这个就更好解释了,就是spring允许你是通知(Advice)的地方,那可就真多了,基本每个方法的钱、后(两者都有也行),或抛出异常是时都可以是连接点,spring只支持方法连接点。其他如AspectJ还可以让你在构造器或属性注入时都行,不过那不是咱们关注的,只要记住,和方法有关的前前后后都是连接点
  • 切入点(Pointcut)
    上面说的连接点的基础上,来定义切入点,你的一个类里,有15个方法,那就有十几个连接点了对吧,但是你并不想在所有方法附件都使用通知,你只是想让其中几个或者达到某一种条件后再使用增强通知,在调用这几个方法之前、之后或者抛出异常时干点什么,那么就用切入点来定义这几个方法,让切点来筛选连接点,选中那几个你想要的方法。
  • 切面(Aspect)
    切面是通知和切入点的结合。现在发现了吧,没连接点什么事,链接点就是为了让你好理解切点搞出来的,明白这个概念就行了。一:通知说明了干什么和什么时候干(什么时候通过方法名中的befor,after,around等就能知道),二:切入点说明了在哪干(指定到底是哪个方法),这就是一个完整的切面定义。

Aspect=PointCut+advice

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值