说AOP前先说下代理。所谓代理,就是把东西交给代理来管理。如把房子交给房产中介来卖。这样房产中介就能做一些事情,比如给房子定价,打广告等。同样,可以将一个类交给代理管理,那么代理就可以对这个类做一些事情。spring就像这样的一个代理。当ACTION要某个服务层的类时,不用直接调用那个类。spring会将那个类给action。同样当页面向后台要action时,并不是直接找的那个action ,而是spring将那个类给页面。
这样将类交给代理(spring)管理有什么好处呢?
那就是便于管理。
想想,如果我有这样一个需求,在访问类时验证用户是否登录,没有登录不能访问,那么是不是要在每个类里面加入验证是否登录的方法?如果将类都交给代理(spring),只需要代理(spring)验证该用户是否登录,没有登录,则所有的类都不给它,是不是方便很多?
同样的,有这样一个需求。先更新一个表,成功后更新另一个表。如果中途出错,则两个表都不更新。这样,这两句可以做成一个事务。可是如果这样的需求很多,那是不是又得每个都加上事务?如果有了代理,那么代理可以给某些类统一的加上事务。比如,在所有update,delete ,insert开头的方法里加入事务。
上面所说的对某一类类或方法的统一的管理就是AOP,即面向切面的编程。
分享到:
相关推荐
面向切面编程(Aspect Oriented Programming,简称AOP)是一种编程范式,它将关注点分离,使得系统中的交叉性关注点(如日志、事务管理、...随着对AOP理解的深入,开发者可以创建出更高效、更具弹性的Android应用程序。
面向切面编程(AOP)是软件开发领域的一项重要技术,它与面向对象编程(OOP)相对应,但关注点不同。在本篇中,我们将深入探讨AOP的基本概念、优势以及在Android开发中的应用,同时与OOP进行比较分析。 首先,面向...
Spring AOP 基础关于 AOP 是什么的理解 AOP(Aspect Oriented Programming 面向方面的编程)是一种实现横切面的工具,它是 OOP 的补充,而不是 OOP 的竞争对手。AOP 的出现是为了解决 OOP 中的缺陷,即 OOP 中的类...
例如,在Spring框架中,`MethodInterceptor`被用于实现AOP代理,而`MethodInvocation`则封装了对目标方法的调用。这样,开发者可以选择任何支持AOP Alliance的框架,而不必担心与其它组件的兼容性问题。 **应用场景...
Spring AOP提供了对@AspectJ注解的支持,这是一种声明式的方式来定义切面。@AspectJ是一种类型级别的切面语言,它允许我们使用Java类和方法来表示切面,而不是使用XML配置。使用@AspectJ,我们可以更直观地编写和...
SpringAOP通过使用动态代理技术,实现对目标对象方法调用的拦截,并根据切面定义的切点将增强应用到相应的连接点上。开发者只需要编写切面逻辑,无需修改业务代码,可以更清晰地分离关注点,并提高代码的复用性和可...
5. **理解代理行为**:理解Spring AOP代理的工作方式很重要,因为这可能影响到何时以及如何调用通知。例如,直接通过`@Autowired`注入的bean之间的相互调用不会触发AOP通知,除非显式地通过代理引用进行调用。 6. *...
这允许开发者在Spring中使用AspectJ或其他AOP框架的拦截器和通知,无需对代码进行大规模修改。 2. 拓展性:通过AOPAlliance,Spring 2.0可以轻松地添加新的AOP实现,使得框架的扩展性和可维护性大大增强。 3. 跨...
阿拉神农博客《Android深入理解Aop》的PDF版,也可以在https://blog.csdn.net/innost/article/details/49387395 该网站中直接观看,也可以下载下来保存
4. **Spring Boot**:基于Spring框架的快速开发工具,内建对AOP的支持,并且简化了项目配置。 5. **Logback/Log4j**:日志框架,常与AOP结合使用,记录切面的执行信息。 6. **TestNG/JUnit**:测试框架,用于验证...
在Java Web开发中,IOC(Inversion of Control,控制反转)和AOP(Aspect-Oriented Programming,面向切面编程)是两个至关...记住,理论结合实践是学习的关键,动手操作这些示例代码,将会对这两个概念有更深的理解。
- **切面(Aspect)**: 是对多个类的行为进行封装的操作。 - **连接点(Join Point)**: 在程序执行过程中某个特定的点,比如方法调用或异常抛出。 - **通知(Advice)**: 在切面的某个特定连接点上执行的动作。 - *...
在实际开发中,比如在Spring框架中,我们可以通过实现这些接口来定义自定义的拦截器,然后将其注册到Spring AOP容器中,从而实现对业务逻辑的灵活控制。 总之,AOP Alliance 1.0 为Java开发者提供了一种标准化的...
本示例将简要介绍如何在Spring应用中实现AOP,通过实际的代码示例帮助理解其工作原理。 首先,我们要理解AOP的核心概念。AOP是一种编程范式,它允许开发者定义“切面”(Aspects),这些切面封装了特定的关注点,如...
在Java世界中,Spring框架以其强大的功能和灵活性深受开发者喜爱,尤其在面向切面编程(AOP)方面,Spring提供了非常全面的支持。...同时,了解这些基础组件的工作原理,将有助于你更好地理解和优化Spring AOP的应用。
在仿Spring AOP框架中,你可以使用动态代理(如JDK Proxy或CGLIB)来创建代理对象,确保对目标对象的所有调用都能触发切面逻辑。 最后,通过实际的**测试案例**,我们可以验证和理解上述概念的运作。在`java5_unit...
3. spring-aspects-4.1.6.RELEASE.jar:这个jar文件包含了Spring对AspectJ的集成支持。AspectJ是一个全面的面向切面编程(AOP)框架,它可以编译时或运行时织入切面。Spring Aspects提供了与AspectJ的无缝集成,使得...
接下来,我们通过一个简单的Spring AOP示例来加深对上述概念的理解。假设我们需要在调用某个公共方法前记录日志,我们可以定义一个`BeforeAdvice`,并在目标方法上应用此通知。 ```java package com.example.aop; ...
"IOC(DI)与AOP概念的理解" IOC(Inversion of Control,控制反转)和DI(Dependency Injection,依赖注入)是软件设计中两个重要的概念。控制反转的意思是依赖关系的获取方式被反转了。所谓依赖,从程序的角度看,...
Spring AOP(Aspect Oriented Programming,面向切面编程)是Spring框架的重要组成部分,它提供了一种在不修改源代码的情况下,对现有代码进行功能增强的技术。本文将深入探讨Spring AOP的源码,帮助开发者理解其...