Kotlin으로 개발하는 Spring Boot Web MVC #3
목차
실습 환경
- IntelliJ
- Kotlin
- Gradle
- JDK 11
- Spring Boot 2.6.2
실습 코드
https://github.com/0n1dev/kotlin-spring-practice
GitHub - 0n1dev/kotlin-spring-practice: 인프런 강의
인프런 강의. Contribute to 0n1dev/kotlin-spring-practice development by creating an account on GitHub.
github.com
Spring Boot Validation
Custom Validation Annotation 만들어서 사용하기
@Constraint(validatedBy = [StringFormatDateTimeValidator::class])
@Target(
AnnotationTarget.FIELD,
AnnotationTarget.PROPERTY_GETTER,
AnnotationTarget.PROPERTY_SETTER
)
@Retention(AnnotationRetention.RUNTIME)
@MustBeDocumented
annotation class StringFormatDateTime(
val pattern: String = "yyyy-MM-dd HH:mm:ss",
val message: String = "시간 형식이 유효하지 않습니다.",
val groups: Array<KClass<*>> = [],
val payload: Array<KClass<out Payload>> = []
)
class StringFormatDateTimeValidator: ConstraintValidator<StringFormatDateTime, String> {
private var pattern: String? = null
override fun initialize(constraintAnnotation: StringFormatDateTime?) {
this.pattern = constraintAnnotation?.pattern
}
// 정상이면 true, 비정상이면 false
override fun isValid(value: String?, context: ConstraintValidatorContext?): Boolean {
return try {
LocalDateTime.parse(value, DateTimeFormatter.ofPattern(pattern))
true
} catch (e: Exception) {
false
}
}
}
'Book & Lecture > Inflearn' 카테고리의 다른 글
Kotlin으로 개발하는 Spring Boot Web MVC #5 (0) | 2022.01.16 |
---|---|
Kotlin으로 개발하는 Spring Boot Web MVC #4 (0) | 2022.01.16 |
Kotlin으로 개발하는 Spring Boot Web MVC #2 (0) | 2022.01.16 |
Kotlin으로 개발하는 Spring Boot Web MVC #1 (0) | 2022.01.15 |
Kotlin으로 개발하는 Spring Boot Web MVC #0 (0) | 2022.01.15 |