1. 程式人生 > >Spring boot 瞭解(二)(訪問靜態檔案和捕獲全域性異常)

Spring boot 瞭解(二)(訪問靜態檔案和捕獲全域性異常)

學習 Spring boot 關於如何訪問靜態檔案 與 捕獲全域性異常的 筆記記錄

(學習網址:https://www.majiaxueyuan.com/front/couinfo/36

目錄

1.訪問靜態檔案

2.捕獲全域性異常


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.啟動程式在瀏覽器去訪問這兩個路徑

就可以看到全域性抓取異常的作用了:

以上。