Spring aop概述-1
来源:互联网 发布:收购域名骗局 编辑:程序博客网 时间:2024/06/05 06:20
Spring aop概述
Aop是Aspect-Oriented Programming(面向切面编程)的简称,Aspect是一种新的模块机制,用来描述分散在对象、类或函数中的横切关注点。从关注点中分离出横切关注点是面向切面的程序设计的核心概念。分离关注点使解决特定问题的代码从业务逻辑中独立出来,业务逻辑中的代码不再含有针对特定领域问题代码的调用,业务逻辑同特定领域问题的关系通过切面来封装、维护,这样原本分散在整个应用程序中的变动就可以很好的管理起来。Spring Aop为IOC的使用提供了更多的便利,一方面,应用可以直接使用Aop的功能,设计应用的横切关注点,把跨越应用程序多个模块的功能抽象出来,并通过简单的Aop的使用,灵活地编织到模块中,比如可以通过Aop来实现应用程序中的日志功能,另一方面,在Spring内部,一些支持模块也是通过Spring Aop来实现的,如事务管理。接下以ProxyFactoryBean的实现为例来了解Spring Aop的具体设计和实现。
1、设计原理
在Spring的Aop模块中,一个主要的部分是代理对象的生成,而对于Spring应用,可以看到,是通过配置和调用Spring的ProxyFactoryBean来完成这个任务的。在ProxyFactoryBean中,封装了主要代理对象的生成过程。在这个生成过程中,可以使用JDK的Proxy和CGLIB的两种生成方式。
以ProxyFactory为设计为中心,可以看到相关的类的继承关系如下图:
在这个类继承体系中,可以看到完成Aop应用的类,比如AspectJProxyFactory、ProxyFactoryBean和ProxyFactory,它们都在同一个类的继承体系下,都是ProxyConfig、AdvisedSupport和ProxyCreatorSupport的子类。作为共同基类,可以将ProxyConfig看出是一个数据基类,这个数据基类为ProxyFactoryBean这样的子类提供了配置属性;在另一个基类AdvistedSupport的实现中,封装了Aop对通知和通知器的相关操作,这些操作对于不同的Aop代理对象的生成都是一样的,但是对于具体的Aop代理对象的创建,AdvistorSupport把它交给它的子类们去完成;对于ProxyCreatorSupport,可以将它看作是其子类创建Aop代理对象的一个辅助类。通过继承以上提到的基类的功能的实现,具体的Aop代理对象的生成,根据不同的需要,分别由ProxyFactoryBean、AspectJProxyFactory和ProxyFactory来完成。
- Spring aop概述-1
- Spring aop术语概述
- Spring AOP概述
- Spring AOP 概述
- Spring AOP 概述
- Spring AOP 概述
- Spring AOP概述
- Spring AOP 概述
- Spring-AOP概述
- 【Spring】AOP概述
- spring学习4-AOP概述
- Spring学习4:AOP概述
- Spring学习-16:AOP的概述
- 1.spring基础:spring概述+基础配置+Java配置+AOP
- Spring AOP-1 Spring AOP入门
- AOP概述
- AOP概述
- AOP概述
- 快速开发android应用4-使用viewpager+fragment构建主页
- java多线程之CAS详解
- memcache扩展安装
- Java集合类详解
- ssm整合
- Spring aop概述-1
- SQL和MDX比较
- GLSL语言基础
- 4-8绝对定位儿子无视父亲的padding
- Linux 入门系列教程__科普篇
- PAT (Advanced Level) Practise 1045 Favorite Color Stripe (30)
- 闲聊,与技术无关,我未入门的第一天
- 数据库优化
- 配置ProxyFactoryBean-2