AOP实现日志和异常处理


        处理日志和异常的手段有很多,可以用拦截器、可以用struts2自带的异常处理机制。。。,还有一种就是spring的aop。
        当n个项目,分别用springmvc、struts2开发时,想要统一处理异常,并记录日志,貌似只能用aop来实现。 遇到异常就向外抛,是个很好的习惯,同时也个很不好的习惯,如果用了aop处理异常,就可以随意向上抛, 每个方法都用try-catch捕获异常,这显然是不科学的,设计模式要求我们,当两处的代码相同,就意味着代码有优化的余地和必要,如果项目紧就另当别论了,能完成就不错了,又有谁会在意代码的健壮性呢?
        以前,懂松耦合的意思,但是对spring具有松耦合的特性一直停留在模糊的认知层面,经过这么多项目的历练,终于初窥门径,经验的确是笔宝贵的财富。。。
        以游戏为例。。。
1、定义异常类 (可选)
  AOP实现日志和异常处理_第1张图片
2、编写dao、service及其实现类
这里接口层就不写出来了
1)dao的实现类
AOP实现日志和异常处理_第2张图片

2)service的实现类

AOP实现日志和异常处理_第3张图片


3、定义切面 和 异常通知
  AOP实现日志和异常处理_第4张图片
4、配置切面
  AOP实现日志和异常处理_第5张图片
 5、测试运行
 
AOP实现日志和异常处理_第6张图片

只要出现了异常,就可以获知其所在的类、方法名、参数、IP,将其记录日志即可。。。简单快捷。。。

你可能感兴趣的:(设计模式)