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

當(dāng)前位置: 首頁 > news >正文

怎么做租房網(wǎng)站營銷失敗案例分析

怎么做租房網(wǎng)站,營銷失敗案例分析,做外貿(mào)需要瀏覽外國網(wǎng)站,做分享衣服網(wǎng)站的初衷是什么更多SpringBoot3內(nèi)容請(qǐng)關(guān)注我的專欄:《SpringBoot3》 期待您的點(diǎn)贊👍收藏?評(píng)論? 重學(xué)SpringBoot3-ErrorMvcAutoConfiguration類 ErrorMvcAutoConfiguration類的作用工作原理定制 ErrorMvcAutoConfiguration示例代碼1. 添加自定義錯(cuò)誤頁面2.自定義錯(cuò)誤控…

更多SpringBoot3內(nèi)容請(qǐng)關(guān)注我的專欄:《SpringBoot3》
期待您的點(diǎn)贊👍收藏?評(píng)論?

重學(xué)SpringBoot3-ErrorMvcAutoConfiguration類

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

ErrorMvcAutoConfiguration 類是 Spring Boot 中用于自動(dòng)配置錯(cuò)誤處理機(jī)制的一個(gè)關(guān)鍵組件。這篇文章將詳細(xì)介紹 ErrorMvcAutoConfiguration類,包括其作用、工作原理以及如何在 Spring Boot 3 應(yīng)用中定制和使用它。

ErrorMvcAutoConfiguration類的作用

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

自動(dòng)配置類

在 Spring Boot 應(yīng)用中,當(dāng)應(yīng)用遇到運(yùn)行時(shí)異常或者請(qǐng)求映射到不存在的路徑時(shí),ErrorMvcAutoConfiguration 類負(fù)責(zé)自動(dòng)配置錯(cuò)誤處理的相關(guān)機(jī)制。它確保應(yīng)用能夠以一種友好的方式向用戶反饋錯(cuò)誤信息,而不是顯示標(biāo)準(zhǔn)的錯(cuò)誤堆棧信息或空白頁。

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

工作原理

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

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

ErrorController

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

返回錯(cuò)誤頁面的流程

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

定制 ErrorMvcAutoConfiguration

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

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

示例代碼

1. 添加自定義錯(cuò)誤頁面

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

示例代碼:

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

自定義404頁面

2.自定義錯(cuò)誤控制器

下面是一個(gè)簡單的自定義錯(cuò)誤控制器 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) {// 從請(qǐng)求中獲取錯(cuò)誤狀態(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";}
}

自定義錯(cuò)誤信息

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

3. ErrorAttributes定制錯(cuò)誤信息

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

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

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;}
}

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

自定義customMessage

結(jié)論

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

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

相關(guān)文章:

  • 定制開發(fā)電商網(wǎng)站建設(shè)百度seo和sem的區(qū)別
  • 菏澤正耀網(wǎng)站建設(shè)公司怎么樣長沙網(wǎng)站優(yōu)化價(jià)格
  • 集團(tuán)企業(yè)網(wǎng)站建設(shè)屬于seo網(wǎng)站優(yōu)化
  • 最早做視頻播放網(wǎng)站百度排名優(yōu)化軟件
  • 房屋結(jié)構(gòu)自建設(shè)計(jì) 網(wǎng)站app開發(fā)網(wǎng)站
  • 免費(fèi)空間asp網(wǎng)站seo基礎(chǔ)入門
  • 長沙房地產(chǎn)交易網(wǎng)seo搜索引擎優(yōu)化工具
  • 廣漢網(wǎng)站建設(shè)ghxhwl免費(fèi)域名注冊(cè)服務(wù)網(wǎng)站
  • 重慶網(wǎng)站建站建設(shè)的費(fèi)用seo最強(qiáng)
  • 做網(wǎng)站可以用別人的身份證嗎網(wǎng)站流量數(shù)據(jù)
  • 天津網(wǎng)站建設(shè)開發(fā)有哪些天津百度網(wǎng)站排名優(yōu)化
  • 伊朗最新消息紹興seo計(jì)費(fèi)管理
  • 博客系統(tǒng)做網(wǎng)站搜索引擎seo關(guān)鍵詞優(yōu)化方法
  • 電子銷售網(wǎng)站模板免費(fèi)下載百度點(diǎn)擊工具
  • 中國建筑人事部大全合肥正規(guī)的seo公司
  • 住建局領(lǐng)導(dǎo)班子成員分工百度首頁排名優(yōu)化價(jià)格
  • 可以做兼職的網(wǎng)站有哪些工作室石家莊網(wǎng)站建設(shè)方案推廣
  • wordpress 做公司網(wǎng)站手游cpa推廣平臺(tái)
  • 蘭州疫情風(fēng)險(xiǎn)等級(jí)石家莊seo網(wǎng)站排名
  • wordpress去掉作者信息seo網(wǎng)站優(yōu)化平臺(tái)
  • 長沙做旅游網(wǎng)站公司預(yù)測2025年網(wǎng)絡(luò)營銷的發(fā)展
  • 莆田有哪幾家做網(wǎng)站設(shè)計(jì)關(guān)鍵詞優(yōu)化搜索排名
  • 頁面設(shè)計(jì)制作網(wǎng)站源碼百度優(yōu)化是什么
  • 咸陽營銷型網(wǎng)站建設(shè)泉州全網(wǎng)營銷優(yōu)化
  • 網(wǎng)站轉(zhuǎn)化附子seo教程
  • js 網(wǎng)站測速千鋒教育地址
  • 有沒有幫人做數(shù)學(xué)題的網(wǎng)站企業(yè)宣傳文案
  • wordpress 2019主題谷歌字體寧波seo怎么做推廣渠道
  • 網(wǎng)站改版 方案東莞整站優(yōu)化推廣公司找火速
  • 做網(wǎng)站一般哪里找廣東的seo產(chǎn)品推廣服務(wù)公司