aop,spring aop,aspectj区别与联系
来源:互联网 发布:烟台seo整站优化方案 编辑:程序博客网 时间:2024/05/16 06:33
aop即面向方面的编程,类似于oop,是一种编程思想。aop的典型应用即spring的事务机制,日志记录。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各
部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。它的主要的功能是:日志记录,性能统计,安全控制,事务处理,异常处理等等;主要的意图是:将日志
记录,性能统计,安全控制,事务处理,异常处理等代码从业务逻辑代码中划分出来,通过对这些行为的分离,我们希望可以将它们独立到非指导业务逻辑的方法中,进而改变这
些行为的时候不影响业务逻辑的代码。
aspectj是aop的java实现方案。下面是几点关于aspectj的描述:
1)AspectJ是一个代码生成工具(Code Generator),其中AspectJ语法就是用来定义代码生成规则的语法。基于自己的语法编译工具,编译的结果是Java Class文件,运行的时候classpath需要包含AspectJ的一个jar文件(Runtime lib),支持编译时织入切面,即所谓的CTW机制,可以通过一个Ant或Maven任务来完成这个操作。
2)AspectJ有自己的类装载器,支持在类装载时织入切面,即所谓的LTW机制。使用AspectJ LTW有两个主要步骤,第一,通过JVM的-javaagent参数设置LTW的织入器类包,以代理JVM默认的类加载器;第二,LTW织入器需要一个 aop.xml文件,在该文件中指定切面类和需要进行切面织入的目标类
3)AspectJ同样也支持运行时织入,运行时织入是基于动态代理的机制。(默认机制)
spring aop是aop实现方案的一种,它支持在运行期基于动态代理的方式将aspect织入目标代码中来实现aop。但是spring aop的切入点支持有限,而且对于static方法和final方
法都无法支持aop(因为此类方法无法生成代理类);另外spring aop只支持对于ioc容器管理的bean,其他的普通java类无法支持aop。同时spring整合了aspectj,使得在spring
体系中可以使用aspectj语法来实现aop。
- aop,spring aop,aspectj区别与联系
- Spring AOP与Aspectj
- spring aop 与 aspectj
- spring中的AOP与AspectJ的区别?
- spring-AOP和AspectJ区别
- AOP(AspectJ、Spring AOP)
- Spring AOP学习11 - Spring AOP 与 AspectJ
- Spring AOP + AspectJ framework
- spring AspectJ aop学习
- spring aop AspectJ
- Spring AOP + AspectJ annotation
- Spring AOP之AspectJ
- spring (四) aop/aspectj
- Spring AspectJ AOP 示例
- Spring @AspectJ 实现AOP
- Spring---AspectJ的AOP
- Spring AOP + AspectJ framework
- Spring3- Spring AOP AspectJ
- 鼠标的位置控制
- android中ListView控件&&onItemClick事件中获取listView传递的数据
- 【个人机房重构】—— 抽象工厂+反射+配置文件详解以及错误分析
- 数据库将字符串转换为多行
- Android多线程及异步任务消息处理机制(一)--Handler的使用
- aop,spring aop,aspectj区别与联系
- 测试结果分析
- 窗口的消息处理
- NYOJ-求转置矩阵问题
- EBS R12客户信息
- JUnit 4 with Hamcrest
- 性能数据
- 消费者生产者问题---线程互斥锁+条件变量
- 光固化技术ATSmake 3D打印机尝鲜测试