Spring AOP(2)

用AOP的概念来代替掉上一篇的约定内容的概念


AOP

瞧,解决了那些生涩的概念了吧,嘿嘿,AOP也就是那么回事,它搞了一些,你看得不明不白的概念,忽悠你一下而已。

为了更加明确,我们介绍一下AOP的术语:

连接点(JointPoint):就是你具体需要拦截的方法,比如上一篇的类HelloServiceImpl的sayHello方法就是一个连接点。

切面(Aspect):就是你需要织入的各类通知所组成,在动态代理里,你可以认为它是一个拦截器,它还可以定义后面介绍的切点,还有通知等内容,你可以认为大部分需要织入流程的东西和配置都可以在切面配置。

通知(Advice):分为前置(before),后置(after),环绕(around),异常返回通知(afterThrowing),正常返回通知(afterReturning),它们将依据约定织入对应的流程中。

织入(Weave):生成动态代理对象,将各类通知织入流程的过程。Spring采用动态代理技术,织入流程,当默认的情况下,存在接口的,使用JDK动态代理,否则使用CGLIB动态代理织入。

为了更好的理解这些,笔者给出Spring AOP约定的流程图:


流程图

这就是Spring AOP和我们约定的流程。

当然这里还有两个概念,一个叫做切点一个叫做引入,我们还没有解释,这篇还会解释切点,等待有机会我们再解释引入吧,不过有了上表的描述,AOP的概念就简单多了,当然Spring实现AOP,比博主模拟的要复杂得多,不过道理是一样的,就是给约定,然后把你开发的代码织入到AOP约定的流程中。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文章接上一篇,上一票最后介绍了getAdvisor的作用,1.获取 AspectJ 表达式切点,2.创建 Adv...
    张开翔阅读 164评论 0 0
  • 一、为什么要使用 AOP AOP (Aspect-Oriented Programming)面向切片编程 AOP ...
    Ada54阅读 269评论 0 1
  • Spring中使用注解方式实现AOP,采用@AspectJ方式实现,首先确定需要切入的方法,也就是连接点 开发切面...
    你呀不牛阅读 301评论 0 0
  • 约定编程 先从约定编程入手。举个例子:在操作数据库时,有很多步骤,如获取连接、注册驱动、执行SQL语句等等,其中最...
    THR_2896阅读 109评论 0 0
  • 我是黑夜里大雨纷飞的人啊 1 “又到一年六月,有人笑有人哭,有人欢乐有人忧愁,有人惊喜有人失落,有的觉得收获满满有...
    陌忘宇阅读 8,605评论 28 53