版权声明:转载的话 请标明出处 https://blog.csdn.net/qq_28198181/article/details/85128903
学习 Spring boot 关于如何访问静态文件 与 捕获全局异常的 笔记记录
(学习网址:https://www.majiaxueyuan.com/front/couinfo/36)
目录
1.访问静态文件
springboot 的 static 是默认扫描的文件
可以看到在创建这个Spring boot 项目的时候,能看到 reosurce,可以在其下面创建一个文件夹名为staitc
一般在这文件夹里存放css img js 等文件,springboot 加载的时候就会去扫描这些文件
现在比如我在img中去添加一张图片:
命名为:logo.jpg
扫描二维码关注公众号,回复:
4650532 查看本文章
路径如下:
现在运行程序,等到启动过后,我们去访问img路径下的logo.jpg
localhost:8080/img/logo.jpg
又比如:我去访问css下的 1.css
localhost:8080/css/1.css
2.捕获全局异常
捕获全局异常
就是说在执行方法时如果出现什么异常后 会自动抓取出来,不用 我们每次去手写 try catch(听大佬说多用于controller中)
流程:
1.新建包exception 再新建一个类
2.类上添加注解@controllerAdvice
(作为参考可以了解下一个大佬的讲解:https://blog.csdn.net/kinginblue/article/details/70186586)
@ControllerAdvice
public class GloableExceptionAop {
.........
}
// @ControllerAdvice 注解定义全局异常处理类
3.方法上添加注解 @ExceptionHandler(Exception.class) 与 @ResponseBody,确保出现异常能够将其返回异常信息
我这写了两个异常抓取
@ControllerAdvice
public class GloableExceptionAop {
//这个是如果运行时出现异常 就回去抓取并且返回错误信息
@ExceptionHandler(RuntimeException.class)
@ResponseBody
public String runtimeExcetpion(Exception e) {
// return "出现异常了,这里捕获了全局异常,相当于手写了全局的AOP捕获异常:";
return "发生了运行异常:" + e.getMessage();
}
//这个是类转换异常的时候 抓取错误信息
@ExceptionHandler(ClassCastException.class)
@ResponseBody
public String CastException(Exception e) {
return "类转换出现异常:" + e.getMessage()+",";
}
}
4.在helloController类中写了两个方法
//这个方法是为了出现运行时异常写的
@RequestMapping("/exc")
public String RunTimeException() {
int a = 2 / 0;
return a + "";
}
//这个方法是为了出现类转换异常写的
@RequestMapping("/cast")
public String CastException() {
Object a = "32";
int s = (int) a;
return s + "";
}
5.启动程序在浏览器去访问这两个路径
就可以看到全局抓取异常的作用了:
以上。