본문 바로가기
Framework & Library/Spring Boot

[Spring Boot] : Validator 분리(1)

by 오주현 2022. 2. 11.
반응형

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편 - 백엔드 웹 개발 활용 기술을 참고하여 공부하였습니다.

반응형

댓글