每日一记--AOP

  最近感觉没有干劲,强逼着自己每天无论怎样一定的要日记打卡。

  首先,先说说自己的状态吧,感觉迷迷茫茫的不知道接下来将要做什么,内心明明知道有许多事情需要去做但就是懒的不想动;所以内心才会这么痛苦!

  看了一篇关于技术笔记的文章,说一天不进行一次总结总会感觉好像没有学到什么东西一样,深有这样的感觉,也是我觉得必须强制自己进行日记打卡一样,这样感觉好像对一些东西又有些深入的了解。无论写的多烂还是怎么,下的决心不能变!!哎,总有一种完成任务的感觉,好像自己没得救了。

  好了,今天浑浑噩噩的学习了关于IOC以及AOP的概念。

1、IOC

  IOC:inversion of control,即控制反转。在程序中一般的都是通过new来主动的创建对象,而控制反转指的就是将创建对象的这种权力交给IOC容器来管理。

2、AOP

  AOP:Aspect oriented programming,即面向切面编程。指的是剖解开封装对象的内部,将影响多个类的公共行为进行封装成一个可重用模块。其包含两个部分:核心关注点和切面关注点。

  核心关注点:即业务处理的主要流程

  切面关注点:即多次发生在核心关注点上,且各处都非常相似。比如日志、权限认证、事物等。

3、AOP概念

  • 横切关注点:

  即对什么方法进行拦截,拦截之后进行怎样的处理。

  • 切面(Aspect):

  类是对物体特征的抽象,切面就是对横切关注点的抽象。

  • 连接点(joinpoint)

  被拦截到的点,如方法、字段、构造器。

  • 切入点(poincut)

  对连接点进行拦截的定义。

  • 通知(advice)

  拦截到连接点之后需要执行的代码。前置、后置、异常、最终、环绕。

  • 目标对象

  代理的目标对象。

  • 织入(weave)

  将切面应用到目标对象并导致代理对象创建的过程。

  • 引入(introduction)

  在不修改代码的情况下,运行期动态的为类添加一些方法或字段。

3、Spring对AOP的支持。

  • 通过JDK动态代理来实现,这样可以通过为任意接口实例创建代理。
  • 当需要代理的对象不是接口,spring则通过CGLIB代理。

  每天坚持写!!!这是我目前的一个小小的目标!!!

原文地址:https://www.cnblogs.com/ZNwithLC/p/9461815.html