Spring boot 瞭解(二)(訪問靜態檔案和捕獲全域性異常)
阿新 • • 發佈:2018-12-26
學習 Spring boot 關於如何訪問靜態檔案 與 捕獲全域性異常的 筆記記錄
(學習網址:https://www.majiaxueyuan.com/front/couinfo/36)
目錄
1.訪問靜態檔案
springboot 的 static 是預設掃描的檔案
可以看到在建立這個Spring boot 專案的時候,能看到 reosurce,可以在其下面建立一個資料夾名為staitc
一般在這資料夾裡存放css img js 等檔案,springboot 載入的時候就會去掃描這些檔案
現在比如我在img中去新增一張圖片:
命名為:logo.jpg
路徑如下:
現在執行程式,等到啟動過後,我們去訪問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.啟動程式在瀏覽器去訪問這兩個路徑
就可以看到全域性抓取異常的作用了:
以上。