中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

做淘寶有哪些推廣網站/seo外鏈友情鏈接

做淘寶有哪些推廣網站,seo外鏈友情鏈接,企業(yè)網站怎么做優(yōu)化,石家莊免費建站更多SpringBoot3內容請關注我的專欄:《SpringBoot3》 期待您的點贊👍收藏?評論? 重學SpringBoot3-ErrorMvcAutoConfiguration類 ErrorMvcAutoConfiguration類的作用工作原理定制 ErrorMvcAutoConfiguration示例代碼1. 添加自定義錯誤頁面2.自定義錯誤控…

更多SpringBoot3內容請關注我的專欄:《SpringBoot3》
期待您的點贊👍收藏?評論?

重學SpringBoot3-ErrorMvcAutoConfiguration類

  • ErrorMvcAutoConfiguration類的作用
  • 工作原理
  • 定制 `ErrorMvcAutoConfiguration`
  • 示例代碼
    • 1. 添加自定義錯誤頁面
    • 2.自定義錯誤控制器
    • 3. ErrorAttributes定制錯誤信息
  • 結論

ErrorMvcAutoConfiguration 類是 Spring Boot 中用于自動配置錯誤處理機制的一個關鍵組件。這篇文章將詳細介紹 ErrorMvcAutoConfiguration類,包括其作用、工作原理以及如何在 Spring Boot 3 應用中定制和使用它。

ErrorMvcAutoConfiguration類的作用

org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration

自動配置類

在 Spring Boot 應用中,當應用遇到運行時異?;蛘哒埱笥成涞讲淮嬖诘穆窂綍r,ErrorMvcAutoConfiguration 類負責自動配置錯誤處理的相關機制。它確保應用能夠以一種友好的方式向用戶反饋錯誤信息,而不是顯示標準的錯誤堆棧信息或空白頁。

ErrorMvcAutoConfiguration 提供了一個默認的錯誤處理頁面,并且允許開發(fā)者通過添加自定義的錯誤頁面來覆蓋默認設置,提高應用的用戶體驗。

工作原理

ErrorMvcAutoConfiguration 利用 Spring MVC 的異常處理機制來捕捉應用中的各種錯誤,并將錯誤信息映射到相應的錯誤處理控制器。默認情況下,它會映射到 /error 路徑。當錯誤發(fā)生時,Spring MVC 會自動重定向到這個路徑,并由 BasicErrorController 處理請求,最終返回一個錯誤視圖。

開發(fā)者可以通過實現(xiàn) ErrorViewResolver 接口來自定義錯誤頁面的解析邏輯,或者通過實現(xiàn) ErrorController 接口并注冊為 Bean 來完全控制錯誤處理的邏輯。

ErrorController

  • errorHtml 方法: 這個方法用于處理 HTTP 請求并返回一個包含錯誤信息的 HTML 頁面。它首先獲取 HTTP 請求的狀態(tài)碼,然后創(chuàng)建一個不可修改的 Map 對象,用于存儲錯誤信息。接著設置響應的狀態(tài)碼為請求的狀態(tài)碼,然后調用 resolveErrorView 方法來解析錯誤視圖。最后,如果 resolveErrorView 方法返回了一個非空的 ModelAndView 對象,那么就返回這個對象,否則返回一個新的 ModelAndView 對象,其中包含"error"作為視圖名稱和之前創(chuàng)建的錯誤信息模型。
  • error 方法: 這個方法用于處理 HTTP 請求并返回一個包含錯誤信息的 JSON 對象。它首先獲取 HTTP 請求的狀態(tài)碼,然后判斷狀態(tài)碼是否為 NO_CONTENT,如果是,則直接返回一個包含狀態(tài)碼的 ResponseEntity 對象。接下來,它創(chuàng)建一個包含錯誤信息的 Map 對象,并將其與狀態(tài)碼一起封裝在一個 ResponseEntity 對象中返回。

返回錯誤頁面的流程

  1. 使用 resolveErrorView 解析錯誤的自定義視圖地址;
  2. 解析過程:
    1. 如果發(fā)生了500、404、503、403 這些錯誤
      1. 如果有模板引擎,默認在 classpath:/templates/error/精確碼.html
      2. 如果沒有模板引擎,在靜態(tài)資源文件夾下找 精確碼.html
    2. 如果匹配不到 精確碼.html這些精確的錯誤頁,就去找 5xx.html4xx.html模糊匹配
      1. 如果有模板引擎,默認在 classpath:/templates/error/5xx.html
      2. 如果沒有模板引擎,在靜態(tài)資源文件夾下找 5xx.html
  3. new ModelAndView("error", model):如果解析不到錯誤頁面的地址,默認的錯誤頁就是 error;

定制 ErrorMvcAutoConfiguration

在Spring Boot 3中,定制 ErrorMvcAutoConfiguration 的方式主要有以下幾種:

  1. 添加自定義錯誤頁面:在 src/main/resources/static/error 目錄下添加自定義的錯誤頁面,如 404.html、500.html 等。Spring Boot 會自動識別這些頁面,并在相應的錯誤發(fā)生時使用它們。
  2. 自定義錯誤控制器:通過創(chuàng)建一個實現(xiàn)了 ErrorController 接口的Bean,可以自定義錯誤處理邏輯。例如,可以在這個控制器中添加日志記錄,或者根據不同的錯誤類型返回不同的視圖或數(shù)據格式。
  3. 使用 ErrorAttributes:Spring Boot 提供了 ErrorAttributes 接口,允許開發(fā)者在控制器或視圖中訪問錯誤相關的屬性(如狀態(tài)碼、錯誤消息等)。這可以用來創(chuàng)建更豐富的錯誤信息反饋。

示例代碼

1. 添加自定義錯誤頁面

在Spring Boot應用中,可以通過在 src/main/resources/static/error目錄下添加錯誤頁面來自定義錯誤響應。例如,對于404錯誤(頁面未找到),可以添加一個名為 404.html的頁面。同樣地,對于500錯誤(服務器內部錯誤),可以添加一個名為 500.html的頁面。Spring Boot會自動識別并在相應的錯誤發(fā)生時使用這些頁面。

示例代碼:

假設你已經創(chuàng)建了 404.html500.htmlsrc/main/resources/static/error目錄下,無需其他配置,Spring Boot會自動使用這些頁面響應相應的錯誤。

自定義404頁面

2.自定義錯誤控制器

下面是一個簡單的自定義錯誤控制器 ErrorController 的示例:

package com.coderjia.springboot304web.controller;import jakarta.servlet.RequestDispatcher;
import jakarta.servlet.http.HttpServletRequest;
import org.springframework.boot.web.servlet.error.ErrorController;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;/*** @author CoderJia* @create 2024/03/12 9:09* @Description**/
@RestController
public class MyCustomErrorController implements ErrorController {@RequestMapping("/error")public String handleError(HttpServletRequest request) {// 從請求中獲取錯誤狀態(tài)碼Object status = request.getAttribute(RequestDispatcher.ERROR_STATUS_CODE);if (status != null) {int statusCode = Integer.parseInt(status.toString());if (statusCode == HttpStatus.NOT_FOUND.value()) {return "Error 404: Page not found";} else if (statusCode == HttpStatus.INTERNAL_SERVER_ERROR.value()) {return "Error 500: Internal server error";}}return "Error: unknown";}
}

自定義錯誤信息

通過這種方式,開發(fā)者可以根據不同的錯誤類型提供不同的處理邏輯和反饋信息。

3. ErrorAttributes定制錯誤信息

Spring Boot 允許通過 ErrorAttributes 接口定制錯誤信息,開發(fā)者可以使用這個接口來獲取或修改錯誤詳情。這些信息然后可以在自定義的錯誤控制器或錯誤視圖中使用。

創(chuàng)建一個類來擴展 DefaultErrorAttributes 類,可以添加或修改錯誤屬性:

package com.coderjia.springboot304web.config;import org.springframework.boot.web.error.ErrorAttributeOptions;
import org.springframework.boot.web.servlet.error.DefaultErrorAttributes;
import org.springframework.stereotype.Component;
import org.springframework.web.context.request.WebRequest;import java.util.Map;/*** @author CoderJia* @create 2024/03/12 9:13* @Description**/
@Component
public class CustomErrorAttributes extends DefaultErrorAttributes {@Overridepublic Map<String, Object> getErrorAttributes(WebRequest webRequest, ErrorAttributeOptions options) {Map<String, Object> errorAttributes = super.getErrorAttributes(webRequest, options);// 可以在此處添加自定義屬性errorAttributes.put("customMessage", "Something went wrong!");return errorAttributes;}
}

在這個例子中,我們添加了一個 customMessage 屬性到錯誤響應中。這個屬性可以在錯誤控制器或錯誤頁面中使用,從而提供更豐富的錯誤信息。

自定義customMessage

結論

ErrorMvcAutoConfiguration 類是 Spring Boot 中用于錯誤處理的重要組件,它提供了一個簡便的機制來自動配置錯誤處理邏輯,同時也提供了多種方式供開發(fā)者根據需求定制錯誤處理。通過合理使用 ErrorMvcAutoConfiguration,可以提高 Spring Boot 應用的健壯性和用戶體驗。

http://www.risenshineclean.com/news/723.html

相關文章:

  • 開發(fā)公司取名字大全免費查詢/貴陽網站優(yōu)化公司
  • 代碼判斷網站/上海百度競價托管
  • 運動網站建設教程/上海網站排名優(yōu)化公司
  • 濟南做網站xywlcn/百度用戶服務中心官網
  • 南海區(qū)住房和城鄉(xiāng)建設部網站/提高網站排名軟件
  • 河南那家公司做家具行業(yè)網站好/電商培訓有用嗎
  • 中山品牌網站建設推廣/軟件培訓機構有哪些?哪個比較好
  • 東莞工信部網站/公司排名seo
  • java做網站pdf/網絡營銷成功案例ppt
  • 學生怎樣做網站/模板建站哪里有
  • 免費網站制作公司/長春網站關鍵詞推廣
  • 網站產品頁面/注冊安全工程師
  • 鄭州做網站 碼通/長沙做網站的公司有哪些
  • 紀檢監(jiān)察信訪舉報網站建設/如何創(chuàng)建一個網頁
  • 鉆井網站建設/seo外包公司多少錢
  • 網站建設策略/湘潭網頁設計
  • 網站建設需要數(shù)據庫嗎/成都百度提升優(yōu)化
  • 個人網站做短視頻/seo網站推廣助理招聘
  • 建設網站要多長時間/app推廣方法及技巧
  • 網站建設哪個公司好知乎/東莞關鍵詞優(yōu)化實力樂云seo
  • 不用登錄的小游戲網站/推廣平臺怎么找客源
  • 香港做網站公司哪家好/平臺推廣策劃方案
  • 云南網站優(yōu)化公司/商丘seo排名
  • wordpress手機編輯器/博客可以做seo嗎
  • 定南網站建設/站長工具seo
  • 做地方服務性網站/武漢seo服務多少錢
  • 政府網站做的不好去哪里投訴/軟文廣告范文
  • 建設企業(yè)高端網站/電商引流推廣方法
  • 商丘幼兒園網站建設策劃方案/qq代刷網站推廣免費
  • 什么網站系統(tǒng)做的最好的/磁力貓torrentkitty官網