Programing/Springboot

springboot application.properties server.error 설정 ErrorController

리커니 2021. 10. 22. 18:25
반응형

springboot application.properties server.error 설정 ErrorController

 

springboot의 에러 설정에 대해 알아보겠습니다.

 

springboot 에러 설정은 기본 설정파일인 application.properties 파일에서 간단히 할 수 있습니다.

 

server.error.path : 에러발생 시 전달 할 경로 (default : /error)

server.error.include-exception : 응답에 exception을 포함할지 여부 (default : false)

server.error.include-stacktrace : 응답에 stacktrace를 포함할지 여부 (default : never)

server.error.whitelabel.enabled : 기본 whitelabel 페이지를 사용할 지 여부 (default : true)

server.error.include-binding-errors : 바인딩 오류를 포함할지 여부 (default : never)

 

이제 CustomErrorController class를 생성하여, 에러가 발생했을 때 이 클래스의 메소드로 전달하는 예제를 보도록 하겠습니다.

 

application.properties에서 필요한 설정만 추가해줍니다.

 

server.error.whitelabel.enabled=false
server.error.path:/service/error

 

이렇게 설정하면 에러발생 시 whitelabel page가 표출되지 않고, /service/error로 넘겨라가 됩니다.

이제 /service/error를 전달받아 처리할 CustomErrorController를 보겠습니다.

 

@RestController
public class CustomErrorController implements ErrorController{
	
	private static Logger LOGGER = LoggerFactory.getLogger(CustomErrorController.class);
	
	@RequestMapping("/service/error")
	public String setError() {
		LOGGER.info("error page 연결 - 잘못된 URL");
		Response res = new Response();
		Header header = new Header();
		header.setResultCode(Integer.valueOf(PropertiesUtils.getMessage("code.fail.url")));
		header.setResultMsg(PropertiesUtils.getMessage("msg.fail.url"));
		res.setHeader(header);
		return  CmmnVar.GSON.toJson(res); 
	}
}

 

org.springframework.boot.web.servlet.error.ErrorController 를 implements 받은 클래스를 생성합니다.

위의 server.error.path 를 받을수 있는 메소드를 생성하고 해당 메소드 내에 로직을 추가하시면 됩니다.

 

우리 예제는 에러 발생 시 /service/error 경로로 전달하여 json 을 전달하는 코드 입니다.

이렇게 설정하면 whitelabel page가 열리는 대신 json 데이터가 전달되게 됩니다.

 

반응형