在传统的oop编程中,比如权限,事务的开启与关闭,log,这些问题并不会影响主业务逻辑,不是必须的,是辅助的,成为横切性问题,aop关注的是横切性的问题,传统的oop编程流程是自上而下,在这个过程中会产生一些横切性问题,比如说权限的验证,日志的记录,事务开启与关闭,如果用oop编程,这些问题会散落在代码的各种地方,aop的实现有很多种方式,放在spring来讲有两种方式实现:1、通过jdk动态代理,Spring默认使用jdk动态代理实现,jdk动态代理基于接口,生成一个类文件,然后再编译成class文件
2、使用Cglib实现,cglib底层运用ASM开源技术,动态生成字节码文件,速度比动态代理快很多,因为动态代理先生成java文件,然后调用各种技术生成class文件,再放到内存中,这样慢很多
AOP跟springAOP的区别:AOP是一种编程思想,跟OOP的概念一样,SpringAOP是实现AOP的一种方式
Spring AOP解析
最新推荐文章于 2024-10-15 20:12:12 发布