AOP:Aspect Oriented Programming, 面向切面编程.
通过预编译和运行期动态代理实现程序功能的统一维护.
在 Spring 框架中, AOP 就是一个很重要的功能.
AOP 利用一种称为横切的技术, 剖开对象的封装, 并将影响多个类的公共行为封装到一个可重用模块, 组成一个切面, 即 Aspect .
"切面" 就是将那些与业务无关, 却为业务模块所共同调用的逻辑或责任封装起来, 便于减少系统的重复代码, 降低模块间的耦合度, 利于可操作性和可维护性.
实现 AOP 的方式, 主要有两大类:
采用动态代理技术, 利用拦截方法的方式, 对该方法进行装饰, 以取代原有对象行为的执行;
采用静态织入的方式, 引入特定的语法创建 "切面", 从而使得编译器可以在编译期间织入有关 "切面" 的代码.
AOP 相关概念
切面 (Aspect), 连接点 (Join point), 通知 (Advice), 切点 (Pointcut), 引入 (Introduction), 目标对象 (Target Object),AOP 代理 (AOP Proxy), 织入 (Weaving)
spring 框架中可以通过 xml 配置和注解去使用 AOP 功能.
详细可以参考:
https://www.jianshu.com/p/007bd6e1ba1b
Java 自学经历
Java 面试题 H5
Java 面试题小程序
来源: http://www.bubuko.com/infodetail-3357192.html