知识大全 Spring3.0中的AOP配置方法
Posted 知
篇首语:心静可以生慧,行善方能得福。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Spring3.0中的AOP配置方法相关的知识,希望对你有一定的参考价值。
Spring3.0中的AOP配置方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
第一种配置方法 使用@AspectJ标签
在配置文件中添加注解
创建一个Java文件 使用@Aspect注解修饰该类
创建一个方法 使用@Before @After @Around等进行修饰 在注解中写上切入点的表达式
说明 上述Java文件创建好后 需要将其在Spring的容器中进行声明 可以在配置文件中定义节点 也可以使用@Component组件进行修饰
示例
Java代码
import aspectj lang ProceedingJoinPoint;
import aspectj lang annotation After;
import aspectj lang annotation AfterThrowing;
import aspectj lang annotation Around;
import aspectj lang annotation Aspect;
import aspectj lang annotation Before;
import springframework stereotype Component;
/**
* 基于注解的AOP日志示例
* @author ZYWANG
*/
@Component
@Aspect
public class AopLog
//方法执行前调用
@Before( execution (* zywang services impl * *( )) )
public void before()
System out println( before );
//方法执行后调用
@After( execution (* zywang services impl * *( )) )
public void after()
System out println( after );
//方法执行的前后调用
@Around( execution (* zywang services impl * *( )) )
public Object around(ProceedingJoinPoint point) throws Throwable
System out println( begin around );
Object object = point proceed();
System out println( end around );
return object;
//方法运行出现异常时调用
@AfterThrowing(pointcut = execution (* zywang services impl * *( )) throwing = ex )
public void afterThrowing(Exception ex)
System out println( afterThrowing );
System out println(ex);
上面这段代码中多次使用了重复的切入点 这种情况下 可以使用@Pointcut标注 来修改一个切入点方法(这个方法不需要参数和方法体) 然后就可以在@Before等标注中引用该方法作为切入点 示例如下
Java代码
import aspectj lang ProceedingJoinPoint;
import aspectj lang annotation Around;
import aspectj lang annotation Aspect;
import aspectj lang annotation Before;
import aspectj lang annotation Pointcut;
import springframework stereotype Component;
/**
* 基于注解的AOP日志示例
* @author ZYWANG
*/
@Component
@Aspect
public class AopLog
@Pointcut( execution (* iflysse school services impl * *( )) )
public void pointcut()
//方法执行前调用
@Before( pointcut() )
public void before()
System out println( before );
//方法执行的前后调用
@Around( pointcut() )
public Object around(ProceedingJoinPoint point) throws Throwable
System out println( begin around );
Object object = point proceed();
System out println( end around );
return object;
第二种配置方法 基于配置文件的配置
创建一个Java文件 并指定一个用于执行拦截的方法 该方法可以有 个或多个参数
在Spring配置文件中注册该Java类为一个Bean
使用 等标签进行配置
示例
Java文件
Java代码
import aspectj lang ProceedingJoinPoint;
/**
* 基于配置文件的AOP日志示例
* @author ZYWANG
*/
public class AopLog
//方法执行的前后调用
public Object runOnAround(ProceedingJoinPoint point) throws Throwable
System out println( begin around );
Object object = point proceed();
System out println( end around );
return object;
Spring配置文件
Xml代码
注意 上面这个示例使用的是around方式的拦截 该方法要求Java类中的方法有一个ProceedingJoinPoint类型的参数
cha138/Article/program/Java/ky/201311/28907相关参考
知识大全 Spring3.0新特征-Restful support MVC[2]
Spring3.0新特征-RestfulsupportMVC[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一
AOP中的主要技术(二) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! SessionPoolD
浅析Spring.net中的Aop使用 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &
大型Javaweb应用往往有很大的系统访问量为了保护服务器免于出现过载的情况一般都需要对流量进行控制对于web页面的访问一般通过配置服务器或者apache可以起到保
Spring专访:Spring3.0近况 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Info
SpringAOP面向方面编程原理:AOP概念 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! A
PHP系列学习之AOP[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! AOP通知类型 通
用代码学习Spring:IoC、AOP 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  
AOP概念解析 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 为什么要区分JEE容器和JEE应用
SpringAOP详解 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 此前对于AOP的使用仅限于