关于spring在3.0以上AOP注释使用出错问题说明

Spring自定义切面采用两种方式:一是使用xlm配置,二是使用注释。在3.0以后使用spring注释时一定要注意,配置方式已经改变。
一,spring3.0以前注释使用方式如下:
@Aspect
public class CheckUser {

@Pointcut("execution(* org.service.*.find*(..))")
public void checkUser() {
System.out
.println("**************The System is Searching Information For You****************");
}

@Pointcut("execution(* org.service.*.add*(..))")
public void checkAdd() {
System.out.println("**************<< Add User >> Checking.....***************");
}

@Before("checkUser()")
public void beforeCheck() {
System.out.println(">>>>>>>> 准备搜查用户..........");
}

@After("checkUser()")
public void afterCheck() {
System.out.println(">>>>>>>> 搜查用户完毕..........");
}

@Before("checkAdd()")
public void beforeAdd() {
System.out.println(">>>>>>>> 增加用户--检查ing..........");
}

@After("checkAdd()")
public void afterAdd() {
System.out.println(">>>>>>>> 增加用户--检查完毕!未发现异常!..........");
}
}

一,spring3.0以后注释使用方式如下:
@Aspect
public class CheckUser {

/*
* @Pointcut("execution(* com.jushi.aop.*.find*(..))") public void
* checkUser() { System.out .println(
* "**************The System is Searching Information For You****************"
* ); }
*
* @Pointcut("execution(* com.jushi.aop.*.add*(..))") public void checkAdd()
* { System.out
* .println("**************<< Add User >> Checking.....***************"); }
*/

@Before("execution(* com.jushi.aop.*.add*(..))")
public void beforeCheck(JoinPoint jp) {
System.out.println(">>>>>>>> 准备搜查用户..........");
}

@After("execution(* com.jushi.aop.*.add*(..))")
public void afterCheck(JoinPoint jp) {
System.out.println(">>>>>>>> 搜查用户完毕..........");
}

@Before("execution(* com.jushi.aop.*.add*(..))")
public void beforeAdd(JoinPoint jp) {
System.out.println(">>>>>>>> 增加用户--检查ing..........");
}

@After("execution(* com.jushi.aop.*.add*(..))")
public void afterAdd(JoinPoint jp) {
System.out.println(">>>>>>>> 增加用户--检查完毕!未发现异常!..........");
}
}

如果使用不当会出现
Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'user' defined in class path resource [applicationContext.xml]: Initialization of bean failed; nested exception is java.lang.IllegalArgumentException: error at ::0 can't find referenced pointcut checkAdd
Caused by: java.lang.IllegalArgumentException: error at ::0 can't find referenced pointcut checkAdd
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值