Spring은 자체적인 Validator 기능 외에 JSR-303 검증도 지원한다고 한다.
이번 예제는 JSR-303 검증을 이용한 유효성 체크를 해본다.
스프링 4.3.9 기준으로 작성되었다.
XML 기반 설정이고 유효성 체크 부분 내용만 기술한다.
1. Maven pom.xml
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>5.4.1.Final</version>
</dependency>
2. Spring servlet-context.xml
- Validator 설정에 messageSource도 추가 가능하나 여기선 생략하였다.
<mvc:annotation-driven validator="validator" />
<bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean" />
3. Java bean
public class User {
...
@NotBlank
private String userName;
...
// getter, setter
}
4. Spring controller
public class UserController {
@PostMapping(value = "/users")
@ResponseStatus(HttpStatus.CREATED)
public void create(@Valid @RequestBody User user) {
}
}
5. Spring controller advice
@RestControllerAdvice
public class ... {
@ExceptionHandler(MethodArgumentNotValidException.class)
public <T> ResponseEntity<T> exception(MethodArgumentNotValidException e) {
...
return T;
}
}
6. Result
{
"error_code": "Bad Request",
"error_details": [
"[userName] 반드시 값이 존재하고 공백 문자를 제외한 길이가 0보다 커야 합니다."
]
}
간단하게 Validator 하는 방법을 기술했으나 완벽한 전체 예제는 아니다.
프로젝트에 유효성 체크 적용 시 한번 참고할 수 있지 않을까하여 정리했다.
끝.
'Spring' 카테고리의 다른 글
Spring 4.3 Redis Sentinel 연동 (0) | 2018.06.16 |
---|---|
Spring 4 Atomikos 설정 (0) | 2017.10.14 |
Spring REST Docs 사용법 (0) | 2017.04.23 |
Spring ehcache 설정 (0) | 2016.12.12 |
Spring 4 자바 기반 Thymeleaf 설정 (0) | 2016.10.16 |
댓글