基础性的知识点,参考:http://www.docin.com/p-650303600.html
什么是AOP
Aspect Oriented Programming 面向方面/切面编程
AOP的作用
实现组件的重复利用,将共通组件与目标对象解耦,改善程序结构,提高灵活性
相关概念
1.Aspect切面
2.JoinPoint连接点:切面组件在目标对象上作用的位置
3.Pointcut切入点:连接点的集合,采用表达式指定
4.Target Object目标对象
5.Advice通知:切面组件在连接点上执行的动作,如:方法调用前/后/前后
6.AutoProxy动态代理:采用AOP之后,容器返回代理对象,用户使用后,由代理对象调用切面组件和目标对象的功能
a.目标对象有接口采用JDK代理 b没有接口采用CGLIB代理
使用
1.引入Jar包
所需Jar包
aspectjrt.jar aspectjweaver.jar结合spring框架所需jar
<dependency> <groupId>aopalliance</groupId> <artifactId>aopalliance</artifactId> </dependency> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> </dependency>
2.新建切面
切面只是普通的bean
例如:
public class OptLogger{ //前置方法 public void logger(){ System.out.println("记录日志"); } //后置方法 public void myafterReturing(Object retVal){ System.out.println("后置通知"+retVal); } //异常方法 public void myafterException(Exception ex){ System.out.println("--异常通知begin--"); ex.printStackTrace(); System.out.println("--异常通知end--"); } //最终通知 public void myafter(){ System.out.println("--最终通知--"); } }
3.配置文件
<!--注册切面--> <bean id = "optLogger" class="tarena.aop.OptLogger"></bean> <aop:config> <aop:pointcut id="servicepointcut" expression="execution(* tarena.service.*.*(..))" /> <!--前置通知--> <aop:aspect id="loggeraspect" ref="optLogger"> <aop:before method="logger" pointcut-ref="servicepointcut"/> </aop:aspect> <!--后置通知--> <aop:aspect id="loggeraspect" ref="optLogger"> <aop:after-returing method="myafterReturing" return="retVal" pointcut-ref="servicepointcut"/> </aop:aspect> <!--异常通知--> <aop:aspect id="loggeraspect" ref="optLogger"> <aop:after-thowing method="myafterException" throwing="ex" pointcut-ref="servicepointcut"/> </aop:aspect> <!--最终通知 不论是否发生异常都会执行--> <aop:aspect id="loggeraspect" ref="optLogger"> <aop:after method="myafter" pointcut-ref="servicepointcut"/> </aop:aspect> </aop:config>
相关推荐
Spring AOP,即面向切面编程,是Spring框架的核心组件之一,它允许程序员在不修改原有业务代码的情况下,对程序进行功能增强。本篇文章将详细阐述Spring AOP的基本概念、种类、代理原理、通知类型以及切入点,帮助你...
**2.15 小结** - **章节总结**:回顾控制反转容器的主要概念和技术要点。 #### 三、面向切面编程 **3.1 AOP与Spring AOP基础** - **AOP概述**:面向切面编程的基本原理。 - **Spring AOP基础概念**:Spring框架...
五、小结 Spring的IoC容器,尤其是ApplicationContext,极大地简化了Java应用的开发和管理。它将对象的创建与管理抽象化,使得开发者能更专注于业务逻辑,而不是繁琐的依赖关系。了解并熟练掌握ApplicationContext...
- **小结**:这些组件共同构成了 Spring Security 的核心架构,提供了强大的身份验证和授权能力。 **5.3 验证** - **什么是 Spring Security 的验证呢?** - Spring Security 的验证机制允许开发者自定义认证过程...
七、小结 AOP 切面的实现是将切面类的所有切面方法根据使用的注解生成对应 Advice,并将 Advice 连同切入点匹配器和切面类等信息一并封装到 Advisor 中,为后续交给代理增强实现做准备的过程。理解 Spring AOP 的...
六 小结Spring AOP 是面向切面编程的一种实现,它通过切面、通知和切入点等概念,将关注点分离,提高代码的可复用性和可维护性。在实际开发中,善用 AOP 可以有效提升系统的灵活性和模块化程度,同时降低复杂性。...
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. 依赖...
小结 Spring框架提供了一个强大的IoC容器和依赖注入机制,允许开发者以声明的方式管理应用程序中的对象关系和依赖关系。同时,Spring框架还提供了一些Annotation和AOP机制,允许开发者以模块化的方式管理应用程序...
6. **AOP(面向切面编程)**:Spring的AOP模块允许我们在不修改原有业务代码的情况下,对程序进行功能增强,如日志记录、性能监控、权限校验等。我们可以定义切面并指定切入点,Spring会在合适的时候自动执行这些切...
- [Spring Boot Actuator监控端点小结](http://blog.didispace.com/spring-boot-actuator-1/) - [在传统Spring应用中使用spring-boot-actuator模块提供监控端点]...
**AOP小结** 面向切面编程(Aspect-Oriented Programming,简称AOP)是一种编程范式,旨在解决软件开发中的横切关注点问题。在传统的面向对象编程中,业务逻辑与系统服务(如日志、事务管理、权限检查等)往往交织...
Spring框架作为Java开发领域中最受欢迎的企业级应用程序框架之一,其核心特性包括控制反转(Inversion of Control, IoC)、依赖注入(Dependency Injection, DI)、面向切面编程(Aspect Oriented Programming, AOP...
根据提供的信息,我们可以详细探讨...### 小结 通过Spring框架结合Velocity模板引擎,可以方便地实现邮件的自动化发送。这种方式不仅可以提高邮件内容的定制化程度,还可以有效减少重复性的手工操作,提升工作效率。
**AOP使用问题小结** 1. **切入点的声明规则**:切点通常由`@Pointcut`注解定义,可以基于方法、包、注解等条件。 2. **增强通知的顺序**:Spring默认按照方法的顺序执行通知,`@Before`先于`@AfterReturning`,`@...
【Spring 框架学习小结】 Spring 是一个流行的 Java 应用开发框架,它以其控制反转(Inversion of Control, IOC)和面向切面编程(Aspect-Oriented Programming, AOP)为核心特性,被誉为轻量级框架。下面将详细...
spring 个人小结 ,工厂模式 源码解析 ,AOP ,IOC 隔离事务
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是简化新Spring应用程序的初始构建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种
Spring是一个开源的Java框架,它旨在简化企业级应用程序的开发,通过提供一个容器来管理和配置对象,以及支持面向切面编程(Aspect-Oriented Programming,AOP)。 **控制反转(IoC)**: 控制反转是Spring的核心...
Spring框架是Java开发中不可或缺的一部分,它以其强大的依赖注入(DI)和面向切面编程(AOP)功能而闻名。本笔记将深入探讨Spring的核心概念,包括如何与Hibernate结合访问数据库,以及如何利用JDBC进行对象化的数据...
- AOP编程部分:包括核心概念、指定代理、自动代理、AspectJ、使用注解、知识小结等章节。 8. 学习态度与习惯 在教程中,强调了学无止境、追求技术进步的理念,并鼓励学习者将学习作为一种习惯。教程还传递了知识...