- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
最佳实践:使用Spring AOP对异常进行统一处理最佳实践:使用Spring AOP对异常进行统一处理
软件体系最佳实践文档 第 PAGE 7 页 共 NUMPAGES \* Arabic 7 页 最佳实践:使用Spring AOP对异常进行统一处理 分类:Java异常处理 作者:凡彬勇 日期:2011-07-18 导读:使用Spring AOP对异常进行拦截,将异常的处理逻辑和正常的处理逻辑进行解耦 问题 我们在捕获到异常并对异常进行处理时可能会遇到如下一些问题: 1.不确定应如何处理这些异常 2.需要记录异常日志时没有记录,或者异常在不同的地方重复记录,使得排错调试不方便 3.处理日志时,需要在每一个try-catch块包含一些处理代码,有时候异常处理的代码比正常执行代码还多,污染正常执行代码。 4.同样类型异常有不同的处理方式,使最终的处理变得复杂。 5.接口抛出异常,破坏封装,打破了接口与实现之间的清晰界限。 6.异常处理代码散落在,修改起来时非常麻烦。无法对某些异常进行统一处理和修改。 …… 有必要使用一个统一的异常处理机制 来进行某些异常处理的统一决策。比如对异常进行统一的日志记录,对散落在各处的某类异常进行统一处理等。 解决办法 这里以Java平台分层架构为例,因为是Flex直接调用Java,没有常见的Action控制层。Service层是Java最顶级一层。使用Spring AOP对serivce层抛出的异常进行拦截,记录所有未处理的异常日志,并将所有未处理异常转换成统一自定义的系统异常,以便Flex客户端能够处理。下面的代码举例说明了如何使用Spring AOP将异常处理从正常的逻辑中分离出来,使得异常处理逻辑和正常的业务逻辑做到完全解耦。不同项目对于异常处理的要求不同,在具体项目中需要对异常处理代码根据项目需要进行修改,加以完善。 AOP为Aspect Oriented Programming的缩写,意为:面向方法编程,可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术。Spring AOP使用的是运行期动态代理方式实现切面编程(关于AOP概念和Spring AOP的实现原理请大家查阅相关资料)。 下面的例子有两个类来实现对异常的统一处理。 com.grgbanking.platform.core.exception.handler.ExceptionLogger //记录异常日志 com.grgbanking.platform.core.exception.handler.ExceptionMessageTransfer //转换成自定义系统异常 然后通过spring的xml配置文件的配置将以上两个类的异常处理逻辑在运行时动态织入到正常的代码执行逻辑流程。 spring配置文件中 切面的相关配置: !-- 记录异常日志的处理类 -- bean id = exceptionLog class = com.grgbanking.platform.core.exception.handler.ExceptionLogger property name = noCatchedExceptions set valueorg.springframework.security.userdetails.UsernameNotFoundException/value /set /property /bean !-- 未处理的异常转换成系统异常,供客户端错误提示用的处理类 -- bean id = exceptionTransfer class = com.grgbanking.platform.core.exception.handler.ExceptionMessageTransfer property name = noCatchedExceptions set valuecom.grgbanking.platform.core.exception.SysException/value valuecom.grgbanking.platform.core.exception.AppException/value valuecom.grgbanking.platform.core.exception.PasswordOverdueException/value valueorg.springframework.security.userdetails.UsernameNotFoundException/value /set /property /bean aop:config proxy-target-class=true !—配置切入点: 所有service类方法执行时? aop:pointcut id=exPoint
您可能关注的文档
- 旅游与城乡规划学院旅游管理专业培养方案(2011年修订)旅游与城乡规划学院旅游管理专业培养方案(2011年修订).pdf
- 昆明最好的高中数学补习辅导培训学校昆明最好的高中数学补习辅导培训学校.pdf
- 昆虫食品营销策略昆虫食品营销策略.pdf
- 昊胜大厦基础大体积混凝土浇筑施工方案昊胜大厦基础大体积混凝土浇筑施工方案.doc
- 昆虫热激蛋白的相关研究昆虫热激蛋白的相关研究.doc
- 昆明地铁1、2、6号线媒体广告位数据研究昆明地铁1、2、6号线媒体广告位数据研究.doc
- 昌乐县2014~2015学年度下学期初中数学学科教学指导意见昌乐县2014~2015学年度下学期初中数学学科教学指导意见.doc
- 昌宁一中八年级思想品德期末考试卷昌宁一中八年级思想品德期末考试卷.doc
- 昆山市2012~2013学年第一学期期末考试试卷 初三物理昆山市2012~2013学年第一学期期末考试试卷 初三物理.doc
- 昌平2013-2014第一学期初二数学期末考试题昌平2013-2014第一学期初二数学期末考试题.doc
- 最佳女主播项目策划案最佳女主播项目策划案.ppt
- 更高更妙的高中数学思想与方法_部分10更高更妙的高中数学思想与方法_部分10.pdf
- 最全小米使用手册及应急处理最全小米使用手册及应急处理.doc
- 最全的AndroidOpenGL开发文档最全的AndroidOpenGL开发文档.doc
- 曾制户口本身份证英文翻译件模板曾制户口本身份证英文翻译件模板.doc
- 最强大脑活动策划最强大脑活动策划.doc
- 必威体育精装版2010年九年级数学中考一轮复习精品教案(第一讲:实数)必威体育精装版2010年九年级数学中考一轮复习精品教案(第一讲:实数).doc
- 最好数子电路课件第8章习题最好数子电路课件第8章习题.ppt
- 必威体育精装版2012年6月必威体育精装版整理全国各地中考数学模拟试题分类汇编 2--14数量和位置变化,平面直角坐标系文档文档必威体育精装版2012年6月必威体育精装版整理全国各地中考数学模拟试题分类汇编 2--14数量和位置变化,平面直角坐标系文档文档.doc
- 必威体育精装版2012年6月必威体育精装版整理全国各地中考数学模拟试题分类汇编 2--42.正多边形、扇形和圆锥侧面展开图文档文档必威体育精装版2012年6月必威体育精装版整理全国各地中考数学模拟试题分类汇编 2--42.正多边形、扇形和圆锥侧面展开图文档文档.doc
文档评论(0)