SpringAOP处理通知中的参数
来源:互联网 发布:马云 功守道 知乎 编辑:程序博客网 时间:2024/05/20 04:32
Spring借助AspectJ的切点表达式语言来定义Spring切面
在spring中尝试使用其他指示器时,会抛出IllegalArgument-Exception异常。
如上的这些指示器,只有exception指示器是实际执行匹配的,而其他都是用来限制匹配的。
切面表达式分析
带参数的切点表达式分解
在该切点表达式中使用了args(trackNumber)限定符。表示传递给playTrack()方法的int类型参数也会传递到通知中去。参数名trackNumber也与切点方法签名中的参数相匹配。
创建切面
@Aspect public class TrackCounter { @Pointcut("execution(* com.wqh.aop.CompactDisc.playTrack(int))&&args(trackNumber)") public void trackPlayder(int trackNumber){} @Before("trackPlayder(trackNumber)") public void countTrack(int trackNumber) { System.out.println("前置通知:targetNumber=" + trackNumber); } }
连接点类
@Service public class CompactDisc { public void playTrack(int trackNumber){ System.out.println("trackNumber =" + trackNumber); } }
XML配置
<!--启用AspectJ的自动代理--> <aop:aspectj-autoproxy/> <!--声明bean--> <bean class="com.wqh.aop.TrackCounter"/> <!--自动扫描包下的类--> <context:component-scan base-package="com.wqh.aop"/>
测试
@Test public void testT(){ ApplicationContext applicationContext = new ClassPathXmlApplicationContext( new String[]{"classpath:/spring/applicationContext.xml"}); CompactDisc compactDisc = (CompactDisc) applicationContext.getBean("compactDisc"); compactDisc.playTrack(12); }
上面给指定方法传入的参数是12,在通知中获取到了该参数
另外:在xml中配置切面来处理通知中的参数,其实也差不多,只是把切点表达式放到了XML配置文件中。
阅读全文
0 0
- SpringAOP处理通知中的参数
- SpringAOP 处理通知中的参数(注解与xml配置)
- springAOP中的各种通知
- Spring AOP 处理通知中的参数【Spring 入门】
- SpringAOP:环绕通知Around
- springAOP的各种通知
- SpringAOP 通知(adivce)- methodIntercepor
- SpringAOP环绕通知的使用
- 使用SpringAOP 处理异常
- SpringAOP中的PointcutAdvisor
- SpringAOP中的IntroductionInterceptor
- springAOP中的基本概念
- SpringAop中的相关概念
- SpringAOP中,获取参数名称
- SpringAOP
- SpringAOP
- SpringAop
- SpringAOP
- 【Python】python逆向入门
- Redis介绍以及安装(Linux)
- 打不开Anaconda Navigator:could not find or load the QT platform plugin "window in"简单解决方法
- 抓包工具之Charles
- XAMPP允许远程访问的方法
- SpringAOP处理通知中的参数
- 游戏开发广度与衍生玩法
- linux系统中resolv.conf文件详解
- 15 《上帝之饮:六个瓶子里的历史》 -豆瓣评分7.5
- 我的Android进阶之旅------>Android中通过adb shell input来模拟滑动、按键、点击事件
- 关于tomcat的servlet映射错误
- 地图积累
- iOS-手把手教你画分时线
- 线程