springaop前切入点及多参数问题-不错的理解多参问题!

springaop前切入点及多参数问题-不错的理解多参问题!

ID:34231871

大小:63.62 KB

页数:5页

时间:2019-03-04

springaop前切入点及多参数问题-不错的理解多参问题!_第1页
springaop前切入点及多参数问题-不错的理解多参问题!_第2页
springaop前切入点及多参数问题-不错的理解多参问题!_第3页
springaop前切入点及多参数问题-不错的理解多参问题!_第4页
springaop前切入点及多参数问题-不错的理解多参问题!_第5页
资源描述:

《springaop前切入点及多参数问题-不错的理解多参问题!》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、SprinqAOP前切入点及多参数问题博客分类:[AOP1[Sprina]问题:看了很多关于SpringAOP的文章,在讲各种切入方式(before,around,after-returnningsthrown等)时,被切入的业务主体Bean的方法,基本者B是无参数的。也有提到有参数的,但都是一个String型的参数。以before为例,无参数方法的切点配置为Xml代码☆1.

2、果方法有一个String型的参数param,则配置为Xml代码☆1.注:如果参数其实可为任何类型,即Object。如果非要强调是String型,参数为其他类型的方法,不想被切点切入,则可写成method=”before(java」ang.String)”(经实际测试arg-names=',param"不

3、写也可以)但如果cn.xxxx..*.*的方法有多个参数,且个数不定,要想让切点可以切入,这么个写法就不行了。我搜了N多的帖子,也没能找到方法,最终几经辗转,终于在网友的帮助下,点破了这一层窗户纸,其实也很简单,还是在配置的写法:Xml代码☆1.与z配合的切点的写法是Java代码☆1.publicvoidbefore(JoinPointjp)

4、throwsThrowable{2.…3.}这样,不论业务Bean的方法有多少个参数,都可以被这个切点切入了。如果需要访问各个参数,只需Java代码☆1.Object[]args=jp.getArgs();华丽的分割线其实,能够满足如上需求的方法,至少还有一种,就是拦截器。Mxl代码1.

5、ames">3・4.beforelnterceptor5・6.7.8.9.10.11-12.

6、13.

7、invoke(Methodlnvocationinvocation)throwsThrowable方法)然后再交还给target属性指明的真正的ServiceBean.它不仅仅能够得到方法的参数,而且还有更强的功能——决定是否继续执行target。Java代码1.publicclassMyCheckerimplementsMethodinterceptor{/*♦*用户访问认证方法。*如果登录合法则开始执行服务,否则返回错误。*/publicObjectinvoke(Methodlnvocati

8、oninvocation)throwsThrowable{MethodinvokeMethod=invocation.getMethod();Object[]args=invocation.getArguments();%•••){returninvocation.proceed();//检查OK,继续执行}else{returnnull;//检查NG,阻断执行}}看到了吧/这里不仅仅可以得到目标方法的参数Object]]args=invocation.getArguments();还可以,控制

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。