Spring Boot 페이지 오류 발생시키기

spring_logo

Spring Boot에서 오류를 임의로 발생시키기 위해서는 어떻게 할 수 있을까요. 단지 미리 정의해둔 예외를 발생시키기만 하면 됩니다. 말로 설명하는것보다는 코드를 보시는편이 나을것 같습니다.

@Controller
public class MyController {

   @ResponseStatus(value=HttpStatus.NOT_FOUND, reason="잘못된 접근입니다.")
    public class UrlNotFoundException extends RuntimeException { }

    @RequestMapping("/admin")
    public String index(Model model) {
    	...
    	throw new UrlNotFoundException();

    	return "index";
    }
}

위의 예제를 보시면 아시겠지만 미리 정의해둔 Exception이 존재하고 거기에 @ResponseStatus 어노테이션을 지정해 두었습니다. 원하는 응답 HttpStatus 코드를 정의할 수 있습니다. 저의 경우에는 404 Not Found를 지정해 보았습니다. reason설정을 통해 오류 발생시에 유저에게 같이 보여줄 메시지 또한 정의할 수 있습니다.

잘못된 유저의 접근등에서 404 Not Found오류를 띄워 페이지가 존재하지 않는것 처럼 보여줄 수 있습니다. 물론 Spring Security를 사용하면 이런 문제는 더욱 쉽게 해결할 수 있겠지만요. Spring Boot에 Spring Security를 적용하는 방법역시 매우 간단합니다. 다음에는 관련된 글을 정리해 보겠습니다.