一、前言

项目刚刚开发的时候,并没有做好充足的准备。开发到一定程度的时候才会想到还有一些问题没有解决。就比如今天我要说的一个问题:异常的处理。写程序的时候一般都会通过try...catch...finally对异常进行处理,但是我们真的能在写程序的时候处理掉所有可能发生的异常吗? 以及发生异常的时候执行什么逻辑,返回什么提示信息,跳转到什么页面,这些都是要考虑到的。

二、基于@ControllerAdvice(加强的控制器)的异常处理

@ControllerAdvice注解内部使用@ExceptionHandler、@InitBinder、@ModelAttribute注解的方法应用到所有的 @RequestMapping注解的方法。本例子中使用ExceptionHandler应用到所有@RequestMapping注解的方法,处理发生的异常。

示例代码:

java" id="highlighter_711480">

如果不起作用,请检查 spring-mvc的配置文件,是否有ControllerAdvice的如下配置

三、基于AOP的异常处理

1.处理controller层的异常 WebExceptionAspect.java

2.处理service层的异常ServiceExceptionAspect .java

3.使用方式,在spring的公共配置文件中加入如下配置:

或者 自定义一个 注册类,ServiceExceptionAspect.java和WebExceptionAspect.java都加入@Component注解

四、疑惑

@within(org.springframework.stereotype.Service),拦截带有 @Service 注解的类的所有方法

@annotation(org.springframework.web.bind.annotation.RequestMapping),拦截带有@RquestMapping的注解方法

五、测试

分别编写controller层和service层的异常测试类。这个很简单,在方法里简单的抛一下异常就可以了。最后验证一下,异常发生的时候有没有 执行 @AfterThrowing对应的方法就好了。具体还是看我写的demo吧,嘿嘿嘿!!!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:http://www.cnblogs.com/hujunzheng/p/6255463.html

icop java,java基于spring注解AOP的异常处理的方法相关推荐

  1. 基于spring注解AOP的异常处理

    一.前言 项目刚刚开发的时候,并没有做好充足的准备.开发到一定程度的时候才会想到还有一些问题没有解决.就比如今天我要说的一个问题:异常的处理.写程序的时候一般都会通过try...catch...fin ...

  2. java毕业设计基于spring框架的论坛网站项目设计和源码

    一.主题 榴莲社区--java开发基于spring框架的论坛网站,基于spring框架的论坛网站项目设计和项目 源 码 免 费下 载 链 接 如 下:  毕业设计项目基于spring框架的论坛网站源码 ...

  3. 基于Spring Security的认证授权_方法授权_Spring Security OAuth2.0认证授权---springcloud工作笔记133

    技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 然后我们再看一下springsecurity的方法授权,很简单,看图吧. 可以看到提供了 @Pre ...

  4. 基于spring boot的统一异常处理

    基于spring boot的统一异常处理 参考文章: (1)基于spring boot的统一异常处理 (2)https://www.cnblogs.com/knyel/p/7804237.html 备 ...

  5. 二、Java框架之Spring注解开发

    文章目录 1. IOC/DI注解开发 1.1 Component注解 @Component @Controller @Service @Repository 1.2 纯注解开发模式 1.3 注解开发b ...

  6. Java开发【Spring之AOP详解(xml--注解->方法增强、事务管理(声明事务的实现))】

    文章目录 引入 一.AOP概述 1.什么是AOP 2.AOP的优势及使用场景 3.AOP实现原理 二.代理模式 1.代理模式概念 2.代理模式分类 3.静态代理演示 定义HouseAgencyComp ...

  7. 【java】通过spring通过AOP实现日志打印(二)

    本人菜鸡一个,上一篇文章说了说自己对AOP的理解,并留下了一个用spring注解实现AOP的坑,本文就来填填这个坑 该系列暂时有两篇文章: [java]java中的AOP思想(一):https://b ...

  8. java 解压到内存,Java GZip 基于内存实现压缩和解压的方法

    欢迎大家关注本博,同时欢迎大家评论交流,可以给个赞哦!!! GZip是常用的无损压缩算法实现,在Linux中较为常见,像我们在Linux安装软件时,基本都是.tar.gz格式..tar.gz格式文件需 ...

  9. Spring 注解AOP

    1.导包 2.编写切面类,在切面类上直接使用AOP注解 packagestar.july.e_spring_aop_annotation; importorg.aspectj.lang.Proceed ...

最新文章

  1. SQL Server2005完全卸载
  2. 什么是Java多态?如何实现Java多态?
  3. 事物 @Transactional
  4. Linux学习笔记14
  5. [原创]纯CSS3打造的3D翻页翻转特效
  6. UWP 颜色选择器(ColorPicker) 和 自定义的Flyout(AdvancedFlyout)
  7. mac安装rstudio_在Windows / Linux / Mac OS上安装R和RStudio入门
  8. java除了框架还需要什么_除了框架,前端面试还问什么
  9. Java 故障安全异常处理
  10. vue实例中使用swiper
  11. CrystalReports2008 SN
  12. 如何自己开发一个Android APP(1)——环境配置
  13. GD32E230开发笔记-GD32选型
  14. 如何使用 forestplot 包绘制森林图展示多个效应的大小
  15. 大逃杀吃鸡毒圈的制作
  16. el-transfer 用法
  17. What 引导的三种名词性从句
  18. openssl 漏洞
  19. 2023东北农业大学计算机考研信息汇总
  20. 如何利用qq群来推广网站 经验分享

热门文章

  1. 何凯明团队又出新论文!北大、上交校友教你用ViT做迁移学习
  2. MLPerf训练最新发榜:谷歌、NV、浪潮 ,冠军榜“三国杀”
  3. 学完这份「计算机基础知识」,你也可以来字节跳动(附下载)
  4. 研究生第一篇科研论文常犯问题总结
  5. 26岁已经是“双一流”高校博导!读博期间也曾两次想要退学......
  6. 百度某员工抱怨:前人代码写得像坨*,颠覆了对大厂的认知
  7. 还在为入门深度学习发愁吗?其实你只需要一周的时间
  8. Linux用户必须知道的常用终端快捷键
  9. VMware中Ubuntu系统不全屏问题
  10. golang-实现自己的事件驱动