spring aop小结

二. Springaop

1. 增强类型

1) @Before:前置增强

2) @After:后置增强,不管是否抛出异常,相当于finally代码块的代码

3) @AfterThrowing异常后增强:

4) @AfterReturning:返回后增强,相当于方法执行后紧接着的代码

5) @Around:环绕增强,传入一个ProceedingJoinPoint用于调用业务模块的代码的对象,可以实现其他四类增强所有功能

 

2.各种增强调用时间

业务方法:Public String  businessMethod(){

}

动态代理回调中的方法执行顺序

invoke(){

try{

   @Before

   String result =businessMethod();

   @AfterReturning

}catch(Exception e){

  @AfterThrowing

}finally{

  @After

}

}

 

2.常用切点表达式

1.方法切点表达式

1) 例子:

execution(public * com.spring.service.BusinessObject.businessService(java.lang.String,..))

2)说明:

指定方法的访问控制修饰符、返回值、包名、方法名、参数名、声明抛出的异常

 

2.类切点表达式

1) 例子:

指定类:within(com.spring.service.BusinessObject)

指定包但不包含子包:within(com.spring.service.*)

指定包但包含子包:within(com.spring.service..*)

 

特殊用法:指定使用了某个注解的类:

@within(com.spring.annotation.BusinessAspect)

 

3.参数切点表达式

1) 例子:

指定方法参数: args(java.lang.String,..,java.lang.Integer)

 

特殊用法:指定参数上使用了某个注解的方法

@args(com.spring.annotation.BusinessAspect)

 

4.注解切点表达式

指定使用了注解的方法:

@annotation(com.spring.annotation.BusinessAspect)

 

 

    

 

上一篇:SYBASE中生成所有建表语句的过程


下一篇:php – 将“流行度”因素与zend-search lucene正确集成的最佳方法是什么?