一、AOP概念
AOP(Aspect Oriented Programming)面向切面编程,是针对面向对象编程的一种补充,同时也是spring中第二个最核心的功能,例如可以进行权限认证,日志输出等,可以无侵入的对原来的功能进行切面加入自定义的非业务功能。
- 切面(Aspect):一个关注点的模块化,这个关注点可能会横切多个对象。在Spring AOP中,切面可以使用基于模式或基于@Aspect注解的方式来实现。
- 连接点(Join Point):在程序执行过程中某个特定的点,比如方法调用的时候或异常处理的时候。在Spring AOP中,一个连接点总是表示一个方法的执行。
- 通知(Advice):在切面的某个特定的连接点上执行的动作。许多AOP框架(包括Spring)都是以拦截器做通知模型,并维护一个以连接点为中心的拦截器链。
- 切入点(Pointcut):匹配连接点的断言。通知和一个切入点表达式关联,并在满足这个切入点的连接点上运行。
- 引入(Introduction):用来给一个类型声明额外的方法或属性。Spring允许引入新的接口(以及一个对应的实现)到任何被代理的对象。
- 目标对象(Target Object):被一个或多个切面所通知的对象。这个对象永远是一个被代理的对象。
- AOP代理(AOP Proxy):AOP框架创建的对象,用来实现切面契约。
- 织入(Weaving):把切面连接到其他应用程序类型或者对象上,并创建一个被通知的对象。
二、AOP基本思想
1.认识AOP
使用AOP,就不用在业务逻辑中实现与业务功能关系不大的代码,从而降低了耦合性,达到易于维护和重用的目的。
一个应用程序分为核心关注点和横切关注点。核心关注点和具体应用的功能相关,而横切关注点存在与整个系统的范围内。在AOP里,每个关注点的实现并不知道是否有其他关注点关注它,组合的流向是从横切关注点到主关注点。
2、AOP与Java代理机制
AOP是一种思想,它和具体的实现技术无关,任何一种符合AOP思想的技术实现,都可以看作是AOP的实现。实际上Spring的AOP是建立在Java的代理机制之上的。
3、用途
日志记录、性能统计、安全控制、权限管理、事务处理、异常处理、资源池管理等。
网友评论