2017-03-25 1 views
1

SpringBoot 컨트롤러는 빈 클래스 인 @RequestBody을 사용합니다. 예를 들어 필드 목록이있는 클래스 바구니입니다. 이러한 필드 중 일부는 읽기 전용이므로 사용자가 필드를 업데이트하라는 요청을 보내려고하면 예외를 throw하려고합니다.SpringBoot 컨트롤러에서 요청 본문 필드의 유효성을 검사하는 방법 (Jackson 사용자 정의)

나는 사용자 정의 @ReadOnly 주석을 사용하여 Basket 클래스의 읽기 전용 필드를 표시합니다. Jackson이 객체 바구니를 구성 할 때 Jackson을 사용자 정의하고 싶습니다. 주석을 사용하여 bean을 분석하고 들어오는 JSON에 읽기 전용 필드가 있으면 예외를 throw해야합니다.

JSR-303 Bean Validation에 대한 조언을 구하지 마십시오.

답변

0

사용자 정의 디시리얼라이저를 작성하고 다음 코드를 사용하여 주석에 액세스하고 예외를 throw하는 로직을 작성할 수 있습니다.

for (Field f: Basket.class.getFields())  { 
       ReadOnly readOnly = f.getAnnotation(ReadOnly.class); 
       if (readOnly != null) 
        // your logic can go here. 
       }