반응형
@ControllerAdvice
모든 또는 여러개의 컨트롤러에 같은 @ExceptionHandler, @InitBinder, @ModelAttributes를 적용하고 싶은 경우 사용할 수 있다.
BaseController
를 생성
@ControllerAdvice(assignableTypes = {EventController.class, EventApi.class})
public class BaseController {
@ExceptionHandler
public String eventErrorHandler(EventException exception, Model model) {
model.addAttribute("message","event error");
return "error";
}
@InitBinder("event")
public void initEventBinder(WebDataBinder webDataBinder) {
webDataBinder.setDisallowedFields("id");
}
@ModelAttribute("categories")
public List<String> categories(Model model) {
return List.of("study", "seminar", "hobby", "social");
}
}
assignableTypes
가 없으면 모든 컨트롤러에 적용.assignalbeTypes
를 사용하여 범위를 지정할 수 있음.- 특정 애노테이션을 가지고 있는 컨트롤러
- 특정 패키지 이하의 컨트롤러
- 특정 클래스 타입
반응형
'Web > Spring' 카테고리의 다른 글
[Spring Boot] Thymeleaf를 사용해 PathVariable 넘기는 방법 (0) | 2020.05.07 |
---|---|
[Spring Boot] 간단한 로그인 기능 구현 - Spring Security (2) | 2020.05.03 |
[Spring MVC] @ExceptionHandler 사용하기 (0) | 2020.02.04 |
[Spring MVC] @InitBinder 사용하기 (1) | 2020.02.04 |
[Spring MVC] @ModelAttribute의 또 다른 사용 (0) | 2020.02.04 |