Я использую Spring MVC с подтверждением формы. объект пользователя имеет поле логин:Как не повторять аннотации для проверки бина?
@Pattern(regexp = Constants.LOGIN_PATTERN)
@Size(min = 4, max = 50)
private String login;
Но я хочу, чтобы использовать эти аннотации с другими полями, напр, с RegisterData.login.. Поэтому я создал еще одну аннотацию:
@Retention(RetentionPolicy.RUNTIME)
@Target(value = { ElementType.FIELD, ElementType.PARAMETER })
@Pattern(regexp = Constants.LOGIN_PATTERN)
@Size(min = 4, max = 50)
public @interface Login {
}
И теперь отметьте поля с ним. Но это не работает. Это способ использовать этот тип 'inheritance'? Или я должен повторить себя?
Это называется мета-аннотацией *, и это не поддерживается в общем случае (какое-то программное обеспечение, например Spring, специально обрабатывает его). Если Groovy является вариантом, вы можете использовать сборщик аннотаций. – chrylis