springboot-이상 처리 및 단원 테스트
1. 사용자 정의 오류 페이지
springBoot 기본적으로 이상한 메커니즘: SpringBoot 기본값은 이상한 메커니즘을 처리합니다.프로그램에 이상이 생기면 SpringBoot은/error의 URL처럼 요청을 보냅니다.springboot에서/error 요청을 처리하고 기본 이상 표시된 페이지로 이동해서 이상 정보를 보여 줍니다.사용자 정의 오류 페이지로 모든 이상을 이동해야 한다면, src/main/resources/templates 디렉터리에 error를 만들어야 합니다.html(꼭 이 이름이어야 함)
2. @ExceptionHandler 메모 처리 예외 (이 컨트롤러에서만 사용)
@Controller
public class NewErrorController {
@ExceptionHandler(value= {java.lang.ArithmeticException.class})
public ModelAndView arithmeticExceptionHandler(Exception e) {
ModelAndView mv = new ModelAndView();
mv.addObject("error", e.toString());
mv.setViewName("error");
return mv;
}
}
3. @ControllerAdvice+@ExceptionHander 메모 처리 예외
이상을 처리할 수 있는 전역 이상 클래스를 만들어야 합니다.클래스에 @ControllerAdvice 메모 추가
4. SimpleMappingExceptionResolver 구성 예외 처리(오류 정보를 전달할 수 없고 매핑만 가능)
@Configuration
public class GlobalException {
@Bean
public SimpleMappingExceptionResolver getSimpleMappingExceptionResolver() {
SimpleMappingExceptionResolver resolver = new SimpleMappingExceptionResolver();
Properties mappings = new Properties();
/**
* : ,
* :
*/
mappings.put("java.lang.ArithmeticException", "ok");
//
resolver.setExceptionMappings(mappings);
return resolver;
}
}
5. 사용자 정의 HandlerExceptionResolver 클래스 처리 이상
글로벌 예외 처리 클래스에서 HandleExceptionResolver 인터페이스 구현
@Configuration
public class GlobalException implements HandlerExceptionResolver {
@Override
public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler,
Exception ex) {
ModelAndView mv = new ModelAndView();
// ,
if(ex instanceof ArithmeticException) {
mv.setViewName("ok");
}
//
mv.addObject("error", ex.toString());
return null;
}
}
junit 단원 테스트
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes= {App.class})
public class UserServiceTest {
}
@RunWith: 이니시에이터 SpringJUnit4ClassRunner.class,junit와spring 환경을 통합합니다
@SpringBootTest(classes= {App.class}) 1.현재 클래스가 springBoot인 테스트 클래스 @SpringBootTest(classes={App.class}) 2.SpringBoot 시작 클래스 로드, SpringBoot 시작
핫 배포:
spring-boot-devtools는 보통true를 설정하고 프로젝트를 계승하면 아래로 전달하지 않습니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.