https://github.com/cepr0/sb-constraint-validator-injection-demo
Demo of the custom ConstraintValidator as a Spring Bean
https://github.com/cepr0/sb-constraint-validator-injection-demo
bean constraint-validation injection spring spring-boot validation
Last synced: 28 days ago
JSON representation
Demo of the custom ConstraintValidator as a Spring Bean
- Host: GitHub
- URL: https://github.com/cepr0/sb-constraint-validator-injection-demo
- Owner: Cepr0
- Created: 2021-01-10T21:57:02.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2021-01-10T21:57:19.000Z (over 5 years ago)
- Last Synced: 2025-12-26T11:51:49.382Z (5 months ago)
- Topics: bean, constraint-validation, injection, spring, spring-boot, validation
- Language: Java
- Homepage:
- Size: 2.93 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
## Demo of the custom ConstraintValidator as a Spring Bean
Spring Boot allows injecting Spring beans to a ConstraintValidator, for example:
```java
@Slf4j
public class CaseValidator implements ConstraintValidator {
private final Predicate uppercasePredicate;
private final Predicate lowercasePredicate;
private CheckCase.CaseMode caseMode;
@Autowired // not necessary annotation
public CaseValidator(Predicate uppercasePredicate, Predicate lowercasePredicate) {
this.uppercasePredicate = uppercasePredicate;
this.lowercasePredicate = lowercasePredicate;
}
@Override
public void initialize(CheckCase constraintAnnotation) {
this.caseMode = constraintAnnotation.value();
}
@Override
public boolean isValid(String value, ConstraintValidatorContext context) {
if (value == null) return true;
if (caseMode == CheckCase.CaseMode.UPPER) {
log.info("[i] Checking uppercase for value: {}", value);
return uppercasePredicate.test(value);
} else {
log.info("[i] Checking lowercase for value: {}", value);
return lowercasePredicate.test(value);
}
}
}
```