@ControllerAdvice
는 모든 컨트롤러들에 대하여 전역적으로 특정 메서드를 적용할 수 있다.
@InitBinder
는 WebDataBinder를 초기화 하는 메서드들을 식별한다. Request 객체에 적용된 Valid들을 검증하거나, 파라미터 들에 대한 특정한 처리를 WebBinder로 하여금 가능하게 한다.
개발 시, 문자열 입력값들에 대하여 Trim을 해주어야 하는 경우가 많은데, 이 두 어노테이션을 통해 trim을 할 수 있다.
@ControllerAdvice
public class ControllerConfig {
@InitBinder
public void initBinder(WebBinder binder) {
// 1)
binder.setAutoGrowCollectionLimit(4000);
// 2)
binder.registerCustomEditor(String.class, new StringTrimmerEditor(false));
}
}
- 모든 collection의 최대 크기를 지정
- 모든 request string들의 trim 지정