欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot中的自定義FailureAnalyzer詳解

 更新時(shí)間:2023年12月22日 11:01:30   作者:yyqhwr  
這篇文章主要介紹了SpringBoot中的自定義FailureAnalyzer詳解,FailureAnalyzer是一種很好的方式在啟動(dòng)時(shí)攔截異常并將其轉(zhuǎn)換為易讀的消息,并將其包含在FailureAnalysis中, Spring Boot為應(yīng)用程序上下文相關(guān)異常、JSR-303驗(yàn)證等提供了此類(lèi)分析器,需要的朋友可以參考下

介紹

FailureAnalyzer是一種很好的方式在啟動(dòng)時(shí)攔截異常并將其轉(zhuǎn)換為易讀的消息,并將其包含在FailureAnalysis中。 Spring Boot為應(yīng)用程序上下文相關(guān)異常、JSR-303驗(yàn)證等提供了此類(lèi)分析器。 實(shí)際上也是非常容易創(chuàng)建自己的FailureAnalyzer。

AbstractFailureAnalyzer是FailureAnalyzer的一個(gè)抽象實(shí)現(xiàn),它檢查要處理的異常中是否存在指定的異常類(lèi)型。 我們可以從中進(jìn)行擴(kuò)展,以便存在指定的異常時(shí)有機(jī)會(huì)去處理。 如果由于某種原因無(wú)法處理異常,則返回null以使另一個(gè)實(shí)現(xiàn)有機(jī)會(huì)處理異常。

代碼示例 

檢查java.lang.NullPointerException異常

繼承AbstractFailureAnalyzer,重寫(xiě)analyze方法,返回FailureAnalysis。泛型的類(lèi)型是Throwable的子類(lèi)。

package com.example.demo.failureAnalyzer;
import org.springframework.boot.diagnostics.AbstractFailureAnalyzer;
import org.springframework.boot.diagnostics.FailureAnalysis;
public class NullPointFailureAnalyzer extends AbstractFailureAnalyzer<NullPointerException> {
    @Override
    protected FailureAnalysis analyze(Throwable rootFailure, NullPointerException cause) {
        return new FailureAnalysis(cause.getMessage(), "請(qǐng)檢查空指針", cause);
    }
}

spring.factories注冊(cè)

#src/main/resources/META-INF中添加spring.factories,并注冊(cè)自定義的FailureAnalyzer:
org.springframework.boot.diagnostics.FailureAnalyzer=\
com.momo.springbootfailureanalyzer.ArithmeticFailureAnalyzer

測(cè)試

定義一個(gè)NullPointException,如null.equal(ss)。SpringBoot在啟動(dòng)時(shí)會(huì)創(chuàng)建這個(gè)bean,在執(zhí)行方法時(shí)由于null.equal(ss)的原因會(huì)拋出java.lang.NullPointerException運(yùn)行時(shí)異常,此時(shí)通過(guò)自定義的FailureAnalyzer進(jìn)行捕獲并處理該異常。

@Service
public class ValidateNullPointExceptionService {
    public ValidateNullPointExceptionService() {
        Integer a = null;
        System.out.println(a.equals("88"));
    }
}

啟動(dòng)時(shí)控制臺(tái)打印的信息

Error starting ApplicationContext. To display the auto-configuration report re-run your application with 'debug' enabled.
2019-02-26 16:48:24.228 ERROR 28488 --- [           main] o.s.b.d.LoggingFailureAnalysisReporter   : 
***************************
APPLICATION FAILED TO START
***************************
Description:
null
Action:
請(qǐng)檢查空指針
Process finished with exit code 1

到此這篇關(guān)于SpringBoot中的自定義FailureAnalyzer詳解的文章就介紹到這了,更多相關(guān)自定義FailureAnalyzer內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring AspectJ AOP框架注解原理解析

    Spring AspectJ AOP框架注解原理解析

    這篇文章主要介紹了Spring AspectJ AOP框架注解原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • Java由淺入深細(xì)數(shù)數(shù)組的操作下

    Java由淺入深細(xì)數(shù)數(shù)組的操作下

    數(shù)組對(duì)于每一門(mén)編程語(yǔ)言來(lái)說(shuō)都是重要的數(shù)據(jù)結(jié)構(gòu)之一,當(dāng)然不同語(yǔ)言對(duì)數(shù)組的實(shí)現(xiàn)及處理也不盡相同。Java?語(yǔ)言中提供的數(shù)組是用來(lái)存儲(chǔ)固定大小的同類(lèi)型元素
    2022-04-04
  • Java8接口默認(rèn)靜態(tài)方法及重復(fù)注解原理解析

    Java8接口默認(rèn)靜態(tài)方法及重復(fù)注解原理解析

    這篇文章主要介紹了Java8接口默認(rèn)靜態(tài)方法及重復(fù)注解原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • Java編程一維數(shù)組轉(zhuǎn)換成二維數(shù)組實(shí)例代碼

    Java編程一維數(shù)組轉(zhuǎn)換成二維數(shù)組實(shí)例代碼

    這篇文章主要介紹了Java編程一維數(shù)組轉(zhuǎn)換成二維數(shù)組,分享了相關(guān)代碼示例,小編覺(jué)得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01
  • 詳解Spring Data JPA系列之投影(Projection)的用法

    詳解Spring Data JPA系列之投影(Projection)的用法

    本篇文章主要介紹了詳解Spring Data JPA系列之投影(Projection)的用法,具有一定的參考價(jià)值,有興趣的可以了解一下
    2017-07-07
  • Java關(guān)鍵字final、static使用總結(jié)

    Java關(guān)鍵字final、static使用總結(jié)

    final方法不能被子類(lèi)的方法覆蓋,但可以被繼承。用static修飾的代碼塊表示靜態(tài)代碼塊,當(dāng)Java虛擬機(jī)(JVM)加載類(lèi)時(shí),就會(huì)執(zhí)行該代碼塊,下面通過(guò)本文給大家分享Java關(guān)鍵字final、static使用總結(jié),感興趣的朋友一起看看吧
    2017-07-07
  • Java使用ES?Client?調(diào)用滾動(dòng)查詢(xún)及Elasticsearch滾動(dòng)查詢(xún)Scrolling機(jī)制

    Java使用ES?Client?調(diào)用滾動(dòng)查詢(xún)及Elasticsearch滾動(dòng)查詢(xún)Scrolling機(jī)制

    Elasticsearch提供了一種稱(chēng)為"滾動(dòng)查詢(xún)"(Scrolling)的機(jī)制,用于處理大型數(shù)據(jù)集的分頁(yè)查詢(xún),這篇文章給大家介紹滾動(dòng)查詢(xún)的一般步驟及Java使用ESClient調(diào)用滾動(dòng)查詢(xún)的方法,感興趣的朋友一起看看吧
    2023-08-08
  • Jenkin郵件收發(fā)實(shí)現(xiàn)原理及過(guò)程詳解

    Jenkin郵件收發(fā)實(shí)現(xiàn)原理及過(guò)程詳解

    這篇文章主要介紹了Jenkin郵件收發(fā)實(shí)現(xiàn)原理及過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • Java中使用websocket實(shí)現(xiàn)在線(xiàn)聊天功能

    Java中使用websocket實(shí)現(xiàn)在線(xiàn)聊天功能

    這篇文章主要介紹了Java中使用websocket實(shí)現(xiàn)在線(xiàn)聊天功能,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2018-02-02
  • java Thread 多線(xiàn)程

    java Thread 多線(xiàn)程

    本篇文章小編為大家介紹,java Thread 多線(xiàn)程。需要的朋友參考下
    2013-04-04

最新評(píng)論