반응형
Validator 분리 1
길고 복잡한 검증 로직을 컨트롤러에서 떼어내는 작업을 했다. 어떻게 떼어냈냐면 따로 클래스를 만들고 여기에 검증 로직을 넣었다. 그리고 컨트롤러에서 불러서 사용하기만 하면 되는 구조로 변경하였다.
@Component
public class ItemValidator implements Validator {
@Override
public boolean supports(Class<?> clazz) {
return Item.class.isAssignableFrom(clazz);
}
@Override
public void validate(Object target, Errors errors) {
Item item = (Item) target;
검증 로직 들어가는 부분
}
이렇게 코드를 짜주었다 스프링에서 제공하는 Validator 인터페이스를 구현했는데 이것에 관해서 다음 강의에서 제대로 알려주신다고 하신다. Validator을 호출하기 위해 Component를 통해 스프링 빈에 등록을 해 주었고
private final ItemValidator itemValidator;
@PostMapping("/add") //바인딩은 모델어트리뷰터 뒤에 와야한다. 바인딩이 아이템 객체에 대한 바인딩을 가지고 있기 떄문이다. 꼭 순서가 중요하다.
public String addItemV5(@ModelAttribute Item item, BindingResult bindingResult, RedirectAttributes redirectAttributes, Model model) {
itemValidator.validate(item, bindingResult);
컨트롤러에서 스프링 빈으로 주입받아 직접 호출해 사용했다
스프링 MVC 2편 - 백엔드 웹 개발 활용 기술을 참고하여 공부하였습니다.
반응형
'Framework & Library > Spring Boot' 카테고리의 다른 글
[Spring Boot] : Bean Validation 소개 및 스프링 적용하기 (0) | 2022.02.14 |
---|---|
[Spring Boot] : Validator 분리(2) (0) | 2022.02.11 |
[Spring Boot] : 검증 오류 코드 2가지 확인하기 (0) | 2022.02.11 |
[Spring Boot] : 구체적에서 덜 구체적으로 오류 코드 메시지 처리하기 (0) | 2022.02.11 |
[Spring Boot] : MessageCodesResolver를 통한 검증 오류 코드로 메시지 코드 생성 (0) | 2022.02.11 |
댓글