8.4.4: Spring 的AOP支持
来源:互联网 发布:起点作者写作软件 编辑:程序博客网 时间:2024/06/05 11:17
Spring中AOP代理由Spring的IOC容器负责生成、管理,其依赖关系也由IOC容器负责管理。因此,AOP代理可以直接使用容器中的其他Bean实例作为目标,这种关系可由IOC容器的依赖注入提供。Spring默认使用Java动态代理来创建AOP代理,这样就可以为任何接口实例创建代理了。
Spring也可以使用CGLIB代理,在需要代理类而不是代理接口的时候,Spring会自动切换为使用CGLIB代理。但Spring推荐使用面向接口编程,因此业务对象通常都会实现一个或多个接口,此时默认将使用JDK动态代理,但也可强制使用CGLIB。
Spring AOP使用纯Java实现,它不需要专门的编译过程。Spring AOP不需要控制类装载器层次,因此它可以在所有JavaWeb容器或应用服务器中运行良好。
Spring目前仅支持将方法调用作为连接点,如果需要把对field的访问和更新也作为增强处理的连接点,则可以考虑使用AspectJ。
Spring实现AOP的方法跟其他的框架不同,Spring并不是要提供最完整的AOP实现,Spring侧重于AOP实现和Spring IOC容器之间的整合,用于帮助解决在企业级开发中的常见问题。
因此Spring的AOP通常和Spring IOC容器一起使用,Spring AOP从来没有打算通过提供一种全面的AOP解决方案来与AspectJ竞争。Spring AOP采用基于代理的AOP实现方案,而AspectJ则采用编译时增强的解决方案。
一旦我们掌握了上面AOP的相关概念,就不难发现进行AOP编程其实是很简单的事情。纵观AOP编程,其中需要程序员参与的只有三个部分:
① 定义普通业务组件。
② 定义切入点,一个切入点可能横切多个业务组件。
③ 定义增强处理,增强处理就是在AOP框架为普通业务组件织入的处理动作。
上面三个部分的第一个部分是最平常不过的事情,那么进行AOP编程的关键就是定义切入点和定义增强处理。一旦定义了合适的切入点和增强处理,AOP框架将会自动生成AOP代理,而AOP代理的方法大致有如下公式:
代理对象的方法 = 增强处理 + 被代理对象的方法
我们使用AspectJ方式来定义切入点和增强处理,在这种方式下,Spring有两种选择来定义切入点和增强处理。
① 基于 Annotation 的零配置方式:使用@Aspect、@Pointcut等Annotation来标注切入点和增强处理。
② 基于XML配置文件的管理方式:使用Spring配置文件来定义切入点和增强处理。
- 8.4.4: Spring 的AOP支持
- spring对AOP的支持
- spring支持的AOP类型
- Spring对AOP的支持
- Spring对AOP的支持
- spring对AOP的支持
- spring对AOP的支持
- Spring 对 AOP 的支持
- Spring对AOP的支持
- spring对AOP的支持
- spring对AOP的支持
- Spring对AOP的支持
- Spring-----Spring对AOP的支持
- spring对Junit的支持、spring对Aop的支持
- Spring API级别对AOP的支持
- Spring对AOP的支持1
- Spring对AOP的支持2
- Spring AOP支持的AspectJ语法详解
- mysql增量备份
- Monkey测试简介
- 【每周学习一种模式】java设计模式
- java卡片布局管理器
- ORACLE数据库表概述
- 8.4.4: Spring 的AOP支持
- QT布局管理之堆栈窗体
- 待读笔记[1]
- VS2008或者VS2010出现devenv.exe 系统错误
- HDU 多校联合练习赛2 Warm up 2 二分图匹配
- oracle数据库的下载及安装
- hdu1015(Safecracker )
- POJ - 1595 《Prime Cuts》
- GCC选项_-Wl,-soname