面向切面编程(AOP)和面向对象编程(OOP)类似,也是一种编程模式。Spring AOP 是基于 AOP 编程模式的一个框架,它的使用有效减少了系统间的重复代码,达到了模块间的松耦合目的。
AOP 的全称是“Aspect Oriented Programming”,即面向切面编程,它将业务逻辑的各个部分进行隔离,使开发人员在编写业务逻辑时可以专心于核心业务,从而提高了开发效率。
AOP 采取横向抽取机制,取代了传统纵向继承体系的重复性代码,其应用主要体现在事务处理、日志管理、权限控制、异常处理等方面。
目前最流行的 AOP 框架有两个,分别为 Spring AOP 和 AspectJ。
Spring AOP 使用纯 Java 实现,不需要专门的编译过程和类加载器,在运行期间通过代理方式向目标类植入增强的代码。
AspectJ 是一个基于 Java 语言的 AOP 框架,从 Spring 2.0 开始,Spring AOP 引入了对 AspectJ 的支持。AspectJ 扩展了 Java 语言,提供了一个专门的编译器,在编译时提供横向代码的植入。
为了更好地理解 AOP,就需要对 AOP 的相关术语有一些了解,这些专业术语主要包含 Joinpoint、Pointcut、Advice、Target、Weaving、Proxy 和 Aspect,它们的含义如下:
Joinpoint(连接点) 指那些被拦截到的点,在 Spring 中,可以被动态代理拦截目标类的方法。
Pointcut(切入点) 指要对哪些 Joinpoint 进行拦截,即被拦截的连接点。
Advice(通知) 指拦截到 Joinpoint 之后要做的事情,即对切入点增强的内容。
Target(目标) 指代理的目标对象。
Weaving(植入) 指把增强代码应用到目标上,生成代理对象的过程。
Proxy(代理) 指生成的代理对象。
Aspect(切面) 切入点和通知的结合。

最新文章

  1. [LeetCode] Sum Root to Leaf Numbers 求根到叶节点数字之和
  2. java基础 作业(一)
  3. XE6 & IOS开发之免证书真机调试(1):颁发属于自己的App签名证书(有图有真相)
  4. Android_Dialog
  5. mysql保存emoji表情(微信开发用户昵称..)
  6. Swift 2.0 UIAlertView 和 UIActionSheet 的使用
  7. 超高速指数模糊算法的实现和优化(10000*10000在100ms左右实现)。
  8. mybatis-java代码调用部分
  9. 643. Maximum Average Subarray
  10. ActiveMQ嵌入Tomcat
  11. HTML CSS 特殊字符表
  12. easyui 面板title 加东西
  13. Tensorflow学习资源
  14. 适合初学者的python实际例子
  15. 安装selenium和chromedriver
  16. Mac OSX 快捷键&命令行
  17. win7 xampp 验证码,session出不来的问题
  18. 微信小程序——手把手教你写一个微信小程序
  19. LeetCode: Permutations 解题报告
  20. Java——抽象类、接口

热门文章

  1. LoadRunner监控Linux系统
  2. Django(十九)文件上传:图片上传(后台上传、自定义上传)、
  3. GCPC 2018
  4. CF 1198 A. MP3 模拟+滑动窗口
  5. Codeforces 1294D - MEX maximizing
  6. vs2010编译C++ 对象的使用
  7. 弱点扫描-openvas初始化
  8. 基于LAMP实现后台活动发布和前端扫码签到系统
  9. SmartAssembly .net混淆后,无法找到部分类型
  10. 原生JS 实现 dom ready