Spring boot 프로젝트 의 이상 차단 디자인 과 처리 에 대한 상세 한 설명

배경:
프로젝트 운영 과정 에서 여러 가지 문제 가 발생 할 수 있 는데 흔히 볼 수 있 는 것 은 다음 과 같은 몇 가지 상황 이 있다.
4.567917.업무 절차 에 대한 분석 이 누락 되 고 업무 절차 에 대한 역방향 조작,경계 분석 디자인 이 충분 하지 않다4.567917.외부 서 비 스 를 호출 하고 외부 시스템 에 나타 난 시간 초과,오류,반환 값 이 예상 과 일치 하지 않 습 니 다외부 자원 의 연결 성 문제,db 등 서버 에 나타 난 네트워크 디 더 링 또는 지연디자인,개발,테스트,온라인 을 분석 하 든 문 제 를 정확하게 포 지 셔 닝 하고 해결 방안 을 마련 해 야 한다.
목적:
4.567917.이상 한 처리 과정 을 규범화 시 키 고 이상 이 삼 키 거나 곳곳에서 이상 을 포착 하 는 상황 을 피한다4.567917.정확 한 피드백 이상 정 보 는 포 지 셔 닝 문제 에 근 거 를 제공한다유 니 버 설 이상 전역 처리,업무 개발 관심 감소4.567917.이상 상황 에 대해 미리 경고 하여 신속하게 응답 할 수 있 도록 한다1.이상 계획
1.업무 클래스 이상
업무 절 차 를 정확하게 집행 하지 못 하 게 하 는 행위,흔히 볼 수 있 는 몇 가지:
입력 필수 검증업무 상태 제약 검사
권한 검증
외부 서 비 스 를 호출 하여 데 이 터 를 되 돌려 주 는 것 이 기대 에 부합 되 지 않 습 니 다이러한 이상 은 호출 자 에 게 명확 한 이상 설명 정 보 를 되 돌려 주어 야 하 며,일반적인 상황 에 서 는 코드 와 상 관 없 이 인 코딩 을 조정 할 필요 가 없다.
주의:업무 완전 성의 일부분 이 므 로 미리 분석 해 야 합 니 다.
2.시스템 클래스 이상
서비스 호출 이상:시간 초과,중단,인터페이스 이상(비 200 요청)
제3자 이상:db\redis\메시지 큐 연결 실패 등
주:통상 적 으로 업무 절차 와 무관 하고 제3자 시스템 과 관련 이 있어 코드 조정 을 통 해 간단하게 해결 할 수 없습니다
3.공통 이상
인 코딩 이 엄밀 하지 않 고 데이터 이상 으로 인 한 문 제 는 예측 할 수 없습니다.
예:매개 변수 유형 이 일치 하지 않 고 빈 포인터,배열 이 경 계 를 넘 습 니 다.
이상 차단
springboot 에서 전역 이상 차단 처리 가 알려 진 두 가지 방안 이 있 습 니 다.
방안 1:@Controller 조언,ErrorController 실현
      주:springboot 자체 의 차단 체 제 를 이용 하여 처리 전략 만 정의 하고 springboot 의 약속 을 파괴 하지 않 았 습 니 다.
방안 2:AbstractHandlerExceptionResolver 계승,완전 사용자 정의 처리 전략
      주:spring 의 맨 밑 에 있 는 클래스 를 사용 하여 spring boot 의 약속 을 깨 뜨 려 모든 이상 을 차단 할 수 있 습 니 다.
3.방안 실천
 필 자 는 방안 에 기초 하여 실천 을 한다.
1.이상 차단 순서 도
 
2.RrcRestAdvice 구현 코드

2.RrcExpHandler 구현 코드

메모:RestController Advice 를 기반 으로 한 이상 차단 은 controller 에 요청 한 후의 프로그램 이상 만 캡 처 할 수 있 기 때문에 ErrorController 처리 전의 이상 을 실현 해 야 합 니 다.
요약:
springboot 에서@Controller Advice 와 ErrorController 인 터 페 이 스 를 기반 으로 한 약속 을 추천 합 니 다.springboot 의 약속 에 상대 적 으로 부합 합 니 다.
기타 옵션:
계승 AbstractHandlerExceptionResolver
장점:완전히 사용자 정의 처리 정책 이 가능 합 니 다.단점:프레임 워 크 에 대한 약속 파괴 가 심각 하고 사용자 정의 처리 전략 이 누락 되 기 쉽다.
HandlerInterceptorAdapter 계승
이론 적 으로 업무 코드 가 던 진 이상 을 처리 할 수 있 고 장단 점 은 검증 되 지 않 았 다.
자,이상 이 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가치 가 있 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.

좋은 웹페이지 즐겨찾기