Spring AOP踩坑
建立一个AOP demo的步骤
- 启动AOP注解扫描.
//在applicationContext.xml中加入
<aop:aspectj-autoproxy />
使其会注意到@Aspect注解
或是在启动类中加入@EnableAspectAutoProxy注解
当然加入这个,使其能够找到@Component等
<context:component-scan base-package="com.loop.***"/>
在切面类中加入@Aspect和@Component
切记,不能忘了在界面类中加入这个@Component,.
IDEA判断合法AOP合法(即能相互跳转)的依据只有两个:@EnableAspectAutoproxy和@Aspect .但是,若是不加如@componentIOC并不会注意到这个切面类.导致AOP会被忽略.在切面类中
“`java
@Aspect
@Component
public class MyAspect{//切点定义中,注意方法形参不能直接放,如
@Around(“execution(* xxx.test(varName))”)
public object doExtraThing(varName){
}
//这样,IDE不会报错,但是编译胡出错,会报参数错误异常//正确的协防是用args加入参数,即: @Around("execution(* xxx.test(..))&&args(varName)") public object doExtraThing(ProceedingJointPoint pjp ,String varName){ //before do something try{ pjp.proceed() }catch(Throwable throwable){ //即test方法报错 throwable.printStackTrace(); } }
““
额外记录,数据库中还是不要用关键字来做字段名了,莫名其妙的错误.
IDE有的奇怪错误IDE并不会检测