`
justin8335
  • 浏览: 28810 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

使用Spring的AOP

阅读更多

Spring倡导以依赖注入(IOC)的方式来装配Bean。对于AOP也不例外。

Spring提供了ProxyFactoryBean类来实现AOP的装配。

  1. MethodBeforeAdvice
  2. AfterReturningAdvice
  3. ThrowsAdvice
  4. MethodInterceptor(不要忘记调用其中的invocation.proceed())

 ProxyFactroyBean是一个工厂类,它返回的对象封装了目标对象target和增强的AOP代理。


MethodInterceptor称为环绕通知。除了实现MethodBeforeAdvice,AfterReturningAdvice,ThrowsAdvice这三种Advice功能外,还可以控制目标对象的方法是否执行。



编写Advisor

为了确定Advice所要增强的目标对象的方法,Spring定义了Advisor的概念。
Advisor简单的理解为一个Advice和一个Pointcut的组合。
1.NameMatchMethodPointcut

<property name="&amp;lt;font color=">mappedName" value="methodName" />

2.AbstractRegexpMethodPointcut

<property name="&amp;lt;font color=">pattern" value=".*login" />

AOP代理对象实际上包含了一个由Advisor和Advice组成的拦截链。当客户端调用AOP代理对象的某个方法时,拦截链上的每个Advisor和Advice都有机会对该方法调用进行增强。不同的是,Advice总是增强所有的方法,而Advisor同时包含了Advice和Pointcut。Advisor会通过Pointcut计算是否应该调用Adivce对某个方法进行增强。

使用自动代理

Spring 的自动代理功能实际是由BeanPostProcessor实现的。
Spring提供了几种常用的实现自动代理的BeanPostProcessor。
1. BeanNameAutoProxyCreator :根据Bean的id或者name属性来查找目标Bean并自动为其代理。
2. DefaultAdvisorAutoProxyCreator: 根据当前容器的Advisor决定每个Bean是否可以被代理。
3.
4.AnnotationAwareAspectJAutoProxyCreator :根据AspectJ的注解来决定是否为一个Bean创建代理。
</property> </property>

使用@AspectJ实现AOP

使用AspectJ注解的最大优点就是将多个Advisor集中到一个类中,并且配置极为简单。
分享到:
评论

相关推荐

    使用SpringAop使用Oracle数据权限控制

    接下来,我们使用Spring AOP来实现数据过滤。这通常涉及以下步骤: 1. **定义切点(Pointcut)**:确定哪些方法需要进行权限检查。这可以通过注解或XML配置来实现,例如定义一个名为`@DataAccess`的注解,并将其...

    spring aop jar 包

    在项目中,我们通常会将这个jar包引入到类路径下,以便使用Spring AOP的功能。 总的来说,Spring AOP通过提供面向切面的编程能力,极大地提高了代码的可复用性和可维护性,降低了系统复杂度,特别是在处理共性问题...

    spring aop依赖jar包

    现在,我们回到主题——"springaop依赖的jar包"。在Spring 2.5.6版本中,使用Spring AOP通常需要以下核心jar包: - `spring-aop.jar`:这是Spring AOP的核心库,包含了AOP相关的类和接口。 - `spring-beans.jar`:...

    使用spring aop对web 应用数据进行memcached缓存

    标题 "使用Spring AOP对Web应用数据进行Memcached缓存" 涉及到的关键技术是Spring AOP(面向切面编程)和Memcached,这是一种常见的高性能、分布式内存对象缓存系统。在Web应用程序中,使用缓存可以显著提高数据访问...

    使用Spring aop需要配置的参数

    要使用Spring AOP,首先需要在Spring配置文件或使用Java配置类中启用AOP代理。在XML配置中,这可以通过 `&lt;aop:config&gt;` 标签实现,或者在Java配置类中添加 `@EnableAspectJAutoProxy` 注解。这两个选项都会创建一个...

    Spring Aop四个依赖的Jar包

    要使用Spring AOP,通常需要引入以下几个核心的Jar包: 1. **aspectj-1.7.3.jar**:这是AspectJ库的核心部分,提供了AOP语言支持,包括AspectJ编译器和运行时库。AspectJ是Java平台上的一个开源项目,它扩展了Java...

    使用Spring AOP对异常进行统一处理

    我们在捕获到异常并对异常进行处理时可能会遇到如下一些问题: 1.不确定应如何处理这些异常 2.需要记录异常日志时没有记录,或者异常在不同的地方重复记录,使得排错调试不方便 3.处理日志时,需要在每一个try-catch...

    spring aop 五个依赖jar

    使用Spring AOP,开发者可以定义切面,声明切入点(即关注点的定位),编写通知(即实际的增强代码),并通过配置将它们应用到目标对象上。这样,我们可以保持业务逻辑的清晰,同时实现系统级的服务,如事务管理、...

    基于注解配置和使用spring AOP(spring mvc框架)

    本篇文章将深入探讨如何在Spring MVC中配置和使用基于注解的AOP。 一、Spring AOP基础知识 1. **切面(Aspect)**:切面是关注点的模块化,例如日志、事务管理等。在Spring AOP中,切面可以是Java类或@Aspect注解...

    Java利用spring aop进行监测方法执行耗时

    使用 Spring AOP 进行方法耗时监测的好处有以下几点: 1. 代码实现简单,易于维护:使用 Spring AOP 可以将耗时监测的逻辑与业务逻辑进行解耦,避免业务逻辑代码的冗余和代码维护难度的提高。 2. 安全性高:使用 ...

    spring aop用到jar包.rar

    在使用Spring AOP时,通常需要引入特定的jar包来支持其功能。这个"spring aop用到jar包.rar"压缩文件很可能包含了实现Spring AOP所需的核心库。 首先,Spring框架的基础jar包是必不可少的,例如`spring-core.jar`,...

    springAOP所需jar包

    要使用Spring AOP,首先你需要包含以下关键的jar包: 1. spring-aop.jar:这是Spring AOP的核心库,包含了AOP的API和实现。 2. spring-beans.jar:Spring的bean容器,负责管理和装配bean,AOP也是基于这个容器实现...

    spring aop 依赖jar

    在描述中提到的问题,用户在尝试使用Spring AOP的注解`@Aspect`时遇到了没有提示的情况。这通常是因为缺少了相关的jar包依赖。Spring AOP的实现离不开Spring核心库以及AOP联盟(AOP Alliance)的jar包。在Spring 3.2...

    spring aop所需jar包

    4. **使用Spring AOP的jar包**: - `spring-aop.jar`:Spring AOP的核心库,包含了AOP的API和实现。 - `spring-beans.jar`:Spring Bean的定义和管理,AOP与之紧密关联。 - `spring-core.jar`:Spring的基础库,...

    springaop.zip

    在本示例中,"springaop.zip" 包含了一个使用XML配置的Spring AOP应用实例,可以直接运行,配合相关的博客文章学习效果更佳。 在Spring AOP中,我们首先需要了解几个核心概念: 1. **切面(Aspect)**:切面是关注...

    Spring AOP需要的jar

    本文将详细介绍在使用Spring AOP时所需的两个关键jar包:aopalliance-1.0.jar和aspectjweaver-1.8.9.jar。 首先,让我们了解一下什么是Spring AOP。AOP(Aspect-Oriented Programming,面向切面编程)是一种编程...

    SpringAOP.rar_springAOP

    使用Spring AOP,可以在方法执行前后自动记录日志,无需在每个方法内部添加日志代码。 3.2 事务管理 Spring AOP提供声明式事务管理,可以在切点上定义事务边界,使得事务处理代码不再侵入业务逻辑。 3.3 安全控制...

    spring aop切面拦截指定类和方法实现流程日志跟踪

    本节将详细介绍如何使用Spring AOP实现流程日志跟踪,主要关注于如何通过AOP拦截特定的类和方法来进行日志记录。 ##### 3.1 配置Spring AOP 在Spring配置文件中定义切面和切入点表达式是非常关键的一步。一般来说...

Global site tag (gtag.js) - Google Analytics