로깅 개선 및 EAI 배치 가상 연동 작업 완료

This commit is contained in:
Rinjae
2025-10-16 15:02:35 +09:00
parent c204bbf106
commit f5e689fe51
10 changed files with 246 additions and 47 deletions
@@ -0,0 +1,48 @@
package com.eactive.ext.kjb.utils;
import org.hibernate.validator.messageinterpolation.ParameterMessageInterpolator;
import javax.validation.*;
import java.util.Set;
import java.util.stream.Collectors;
public class ValidationUtil {
private static final ValidatorFactory factory;
private static final Validator validator;
static {
factory = Validation.byDefaultProvider()
.configure()
.messageInterpolator(new ParameterMessageInterpolator())
.buildValidatorFactory();
validator = factory.getValidator();
}
private ValidationUtil() {
}
public static <T> Set<ConstraintViolation<T>> validate(T target) {
return validator.validate(target);
}
public static <T> void validateOrThrow(T target) {
Set<ConstraintViolation<T>> violations = validate(target);
if (!violations.isEmpty()) {
String message = violations.stream()
.map(v -> v.getPropertyPath() + " : " + v.getMessage())
.collect(Collectors.joining(", "));
throw new ConstraintViolationException("Validation failed: " + message, violations);
}
}
public static <T> String getViolationMessage(T target) {
Set<ConstraintViolation<T>> violations = validate(target);
if (violations.isEmpty()) return null;
return violations.stream()
.map(v -> v.getPropertyPath() + " : " + v.getMessage())
.collect(Collectors.joining(", "));
}
}