最近在看spring aop,自己这几天稍微小小总结下,以便于以后万一忘记了可以在这里看看,温习温习。
aop大家都不陌生就是面向切面编程。
aop里的各种名词包括Joinpoint(拦截点),pointcut(拦截表达式),advice(切入的逻辑)。通俗一点就是每个pointcut表达式都会对应一些joinpoint拦截点,然后对应这些拦截点织入相应的advice。就这样。
springAOP现方式大类可以分成静态织入和动态织入。
静态织入就是在编译期,切面的代码直接编译到目标字节码里,这样虽然对系统的性能没有影响,但是灵活性不够。
而动态织入的aop的机制就比较多了。
1. 动态代理。是在运行期,目标类加载后,为接口动态生成代理类,将切面的逻辑通过代理接口加入到子类中。但是唯一的缺点是关注点是接口,对系统有一点点性能的影响。(springAOP默认机制)
2.动态字节码生成。在运行期,目标类加载后,动态构建字节码文件生成目标类的子类,将切面逻辑加入到子类中。缺点是扩展类的实例如果有final时,无法进行织入。cglib是该方法的实现机制。
3.自定义类加载器。在运行期,目标类加载前,将切面逻辑加入到目标字节码里。缺点是代码中如果使用了其他类加载器,那么被其他类加载器加载的类将不会被织入切面逻辑。
4.字节码转换。在运行期,所有类加载器加载字节码前,进行拦截织入。
分享到:
相关推荐
Spring AOP通过两种代理机制实现: 1. JDK动态代理:只能代理实现了接口的目标对象,性能相对较低,需要指定代理接口。 2. CGLIB代理:可代理接口和非final的类,性能较高,通过生成字节码实现。 四、Spring AOP...
### AOP的实现机制 #### 1. AOP各种的实现 面向切面编程(Aspect Oriented Programming,简称AOP)是一种编程范式,旨在提高软件模块化程度,通过将横切关注点(如日志记录、事务管理等)与核心业务逻辑分离,从而...
**AOP使用问题小结** 1. **切入点的声明规则**:切点通常由`@Pointcut`注解定义,可以基于方法、包、注解等条件。 2. **增强通知的顺序**:Spring默认按照方法的顺序执行通知,`@Before`先于`@AfterReturning`,`@...
SpringBoot 使用 AOP+注解实现简单的权限验证的方法 ...小结 使用 AOP+注解可以实现简单的权限验证,确保应用程序的安全性。本文介绍了如何使用 SpringAOP 框架和自定义注解来实现权限验证,以确保应用程序的安全性。
在Spring框架中,AOP通过预编译方式或运行时动态代理来实现对程序功能的统一维护,例如事务管理、日志记录、性能监控等。 #### 主要应用场景 - **事务管理**:在业务逻辑中添加事务边界,确保数据一致性。 - **...
**2.15 小结** - **章节总结**:回顾控制反转容器的主要概念和技术要点。 #### 三、面向切面编程 **3.1 AOP与Spring AOP基础** - **AOP概述**:面向切面编程的基本原理。 - **Spring AOP基础概念**:Spring框架...
小结 Spring框架提供了一个强大的IoC容器和依赖注入机制,允许开发者以声明的方式管理应用程序中的对象关系和依赖关系。同时,Spring框架还提供了一些Annotation和AOP机制,允许开发者以模块化的方式管理应用程序...
1.8 小结 第2章 快速入门 2.1 实例功能概述 2.1.1 比Hello World更适用的实例 2.1.2 实例功能简介 2.2 环境准备 2.2.1 创建库表 2.2.2 建立工程 2.2.3 类包及Spring配置文件规划 2.3 持久层 2.3.1 建立领域对象 ...
14.5.2. 小结 14.6. 文档视图(PDF/Excel) 14.6.1. 简介 14.6.2. 配置和安装 14.6.2.1. 文档视图定义 14.6.2.2. Controller 代码 14.6.2.3. Excel视图子类 14.6.2.4. PDF视图子类 14.7. JasperReports 14.7.1. 依赖...
14.5.2. 小结 14.6. 文档视图(PDF/Excel) 14.6.1. 简介 14.6.2. 配置和安装 14.7. JasperReports 14.7.1. 依赖的资源 14.7.2. 配置 14.7.3. 构造ModelAndView 14.7.4. 使用子报表 14.7.5. 配置Exporter的...
- **小结**:这些组件共同构成了 Spring Security 的核心架构,提供了强大的身份验证和授权能力。 **5.3 验证** - **什么是 Spring Security 的验证呢?** - Spring Security 的验证机制允许开发者自定义认证过程...
1.8 小结 第2章 快速入门 2.1 实例功能概述 2.1.1 比Hello World更适用的实例 2.1.2 实例功能简介 2.2 环境准备 2.2.1 创建库表 2.2.2 建立工程 2.2.3 类包及Spring配置文件规划 2.3 持久层 2.3.1 建立领域对象 ...
14.5.2. 小结 14.6. 文档视图(PDF/Excel) 14.6.1. 简介 14.6.2. 配置和安装 14.7. JasperReports 14.7.1. 依赖的资源 14.7.2. 配置 14.7.3. 构造ModelAndView 14.7.4. 使用子报表 14.7.5. 配置Exporter的...
14.5.2. 小结 14.6. 文档视图(PDF/Excel) 14.6.1. 简介 14.6.2. 配置和安装 14.7. JasperReports 14.7.1. 依赖的资源 14.7.2. 配置 14.7.3. 构造ModelAndView 14.7.4. 使用子报表 14.7.5. 配置Exporter的...
14.5.2. 小结 14.6. 文档视图(PDF/Excel) 14.6.1. 简介 14.6.2. 配置和安装 14.7. JasperReports 14.7.1. 依赖的资源 14.7.2. 配置 14.7.3. 构造ModelAndView 14.7.4. 使用子报表 14.7.5. 配置Exporter的...
#### 五、小结 Spring框架提供了丰富的事务管理方式,使得开发者可以根据项目需求选择最适合自己的方案。通过本文的介绍,相信读者已经对Spring事务配置的五种方式有了更深入的理解。在实际开发过程中,开发者可...
#### 小结 《Spring开发指南》不仅仅是一本关于Spring框架的技术书籍,更是夏昕对Spring框架深入理解的结晶。通过本书的学习,读者不仅可以了解Spring框架的基本原理和核心组件,还能学习到如何利用Spring来解决...
#### 小结 《Spring开发指南》不仅是一本入门书籍,更是深入理解和掌握Spring框架的关键资源。通过对Spring框架核心概念的详细解读,如依赖注入的不同实现类型、Bean封装机制等,本书为开发者提供了坚实的基础,...