我有一个定义一些注释的库。可以将该注释添加到我的请求中,我想将该注释粘贴到一些自定义验证程序上。
外部库
注释类
@Target(
AnnotationTarget.FUNCTION,
AnnotationTarget.PROPERTY_GETTER,
AnnotationTarget.PROPERTY_SETTER,
AnnotationTarget.FIELD
)
@Retention(AnnotationRetention.RUNTIME)
annotation class UniqueValue()
请求类别
class PostReq(
@field:UniqueValue
val value: String
)
我的应用
@Component
class UniqueValueValidator() : ConstraintValidator<UniqueValue?, String?> {
override fun initialize(constraint: UniqueValue?) {}
override fun isValid(value: String?, context: ConstraintValidatorContext): Boolean {
println("validation magic")
return true
}
}
我无法使用我的 UniqueLoginValidator 来验证请求中带有 UniqueValue 注释的字段。关于如何将它们粘合在一起的任何想法?我不能使用 @Constraint(validatedBy = [UniqueValueValidator :: class]),因为它在外部库中不可用。
答案 0 :(得分:0)
您可以创建一个新的注释,从库中扩展一个注释,并使用验证约束对该注释进行注释。
@UniqueValue
@Constraint(validatedBy = UniqueValueValidator.class)
public @interface ValidatedUniqueValue {
}
这意味着您将不得不使用这个新创建的注释,而不是库中的注释。