카테고리 없음

Spring Boot에서 @Valid를 사용하여 객체의 유효성을 검사하는 방법은 무엇입니까?

기록만이살길 2021. 2. 20. 07:32
반응형

Spring Boot에서 @Valid를 사용하여 객체의 유효성을 검사하는 방법은 무엇입니까?

1. 질문(문제점):

저는 Spring Boot 프로젝트에서 작업 중이며 개체의 일부 필드를 검증하려고합니다.

실제로 매개 변수를 허용하는 API가 있습니다. 다음 @Valid과 같이 API 선언에 사용할 수 있습니다 .

@GetMapping(value="/...")
Object myMethod(@RequestParam(value="name") @Size(min = 3) String name)

그러나 나는 거기에서 확인하고 싶지 않습니다. 값의 유효성을 검사하는 "필터"개체가 있으므로 다음과 같은 결과를 기대합니다.

컨트롤러 파일

@override
public Object myMethod(String name){
  @Valid Filter filter = new Filter(name)
}

필터는 엔티티가 아니라 유효성 검사 태그가있는 클래스 일뿐입니다.

public class Filter

  @Size(min = 3)
  private String name;

  public Filter(name){
    this.name = name;
  }

  // getters and setters

따라서 아이디어는 @Valid객체 생성 을 사용 하고 유효성 검사가 성공하지 못하면 예외를 throw하는 것입니다. 이것이 가능한가?

쿼리 매개 변수, 본문 요청 등의 유효성을 검사하는 여러 솔루션을 찾았지만 new.

2. 해결방안:

내가 볼 수있는 것은 불가능합니다. 케이스에 가장 가까운 해결책은 다음을 사용하여 엔티티를 수동으로 검증하는 것입니다.

@Autowired
private Validator validator;

다음과 같이 객체의 유효성을 검사합니다.

@Override
public Object myMethod(String name){
    Filter filter = new Filter(name);
    validator.validate(filter);
}
65951362
반응형