• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

关于java:浅谈Spring-AOP

java 搞代码 4年前 (2022-01-27) 36次浏览 已收录 0个评论

Spring外围之AOP

AOP是什么?

AOP(Aspect Oriented Programming)是一种设计思维,是软件设计畛域中的面向切面编程,它是面向对象(OOP)的一种补充和欠缺。它以通过预编译形式和运行期动静代理形式,实现在不批改源码的状况下给程序动静对立增加额定性能的一种技术。
如图所示:

AOP和OOP字面意思很相近,但其实两者齐全是面向不同的畛域的设计思维,理论我的项目中咱们通常将面向对象了解为一个动态过程(例如一个零碎有多少个模块,一个模块有哪些对象,对象有哪些属性)。面向切面的运行期代理形式,了解为一个动静过程,能够在对象运行时动静织入一些扩大性能或管制对象执行。

Spring AOP 利用原理

Spring AOP底层基于代理机制(动静代理)实现性能扩大
1)JDK动静代理:如果指标对象(被代理对象)实现接口,则AOP底层能够采纳JDK动静代理机制为指标对象创立代理对象(指标对象和代理对象会实现独特接口)。
2)CGLIB动静代理:如果指标对象(被代理对象)没有实现接口,则AOP底层会采纳CGLIB代理机制为指标对象创立代理对象(默认创立的代理类会继承指标对象类型)。
如图所示:

Spring AOP 相干术语:

  • 切面(aspect):横切面对象,个别为一个具体类对象(能够借助@Aspect申明)。
  • 告诉/加强(Advice):在切面的某个特定连接点上执行的动作(扩大性能),例如:around,before,after等。
  • 连接点(joinpoint):程序执行过程中某个特定的点,个别指向被拦挡到的指标办法。
  • 切入点(pointcut):对多个连接点(Joinpoint)一种定义,个别能够了解为多个连接点的汇合。
  • 引入(Introduction): 增加办法或字段到被告诉的类。 Spring容许引入新的接口到任何被告诉的对象。例如,你能够应用一个引入使任何对象实现 IsModified接口,来简化缓存。Spring中要应用Introduction, 可有通过DelegatingIntroductionInterceptor来实现告诉,通过DefaultIntroductionAdvisor来配置Advice和代理类要实现的接。
  • 指标对象(Target Object): 蕴含连接点的对象。也被称作被告诉或被代理对象。POJO
  • 织入(Weaving): 组装方面来创立一个被告诉对象。这能够在编译时实现(例如应用AspectJ编译器),也能够在运行时实现。Spring和其余纯Java AOP框架一样,在运行时实现织入。
  • 待更新。。。。。

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:关于java:浅谈Spring-AOP
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址