Это не сигнатура метода.это означает, что вы можете передать String как параметр в аннотацию Component, например так:
@Component(value = "value")
Если вы не укажете свое значение, будет использовано значение по умолчанию "".
Если бы это было так: значение
String value(); // without the default
было бы обязательным параметром.Попытка использовать Компонент как это:
@Component()
приведет к Исключению, так как вы не предоставили значение.
РЕДАКТИРОВАТЬ: когда использовать.
Есливы не знаете много об этом синтаксисе или аннотациях в целом, вы не должны их использовать.Обо всем, что можно сделать с помощью аннотаций, особенно пользовательских, также можно обойтись без аннотаций.
Допустим, вы хотите создать аннотацию для проверки значения поля.Я буду использовать пример бельгийских почтовых индексов.Все они состоят из 4 цифр и имеют значение от 1000 до 9999.
@Target( {ElementType.FIELD})
@Retention( RetentionPolicy.RUNTIME)
@Constraint( validatedBy = ValidatePostalCodeImpl.class)
public @interface ValidatePostalCode{
String message() default "You have entered an invalid postal code";
Class<?>[] groups() default {}; // needed for the validation
Class<? extends Payload>[] payload() default{}; // needed for the validation
int maxValue() default 9999; // so, by default, this will validate based
int minValue() default 1000; // on these values, but you will be able to
// override these
}
/ * Реализация проверки * /
public class ValidatePostalCodeImpl implements ConstraintValidator<ValidatePostalCode, Integer> {
int upperValue;
int lowerValue;
@Override
public void initialize(ValidatePostalCode validate) {
this.upperValue = validate.maxValue(); // here you call them as if they indeed were regular methods
this.lowerValue = validate.minValue();
}
@Override
public boolean isValid(Integer integer, ConstraintValidatorContext context) {
return integer >= lowerValue && integer <= upperValue;
}
}
/ * Использование * /
@Entity
@Table(name = "addresses")
public class Addresses {
// home address -> In Belgium, so has to be between the default values:
@ValidatePostalCode
Integer belgianPostalCode;
// vacation home in another country, let's say the PC's there are between
// 12000 and 50000
@ValidatePostalCode(minValue = 12000, maxValue = 50000)
Integer foreignPostalCode;
}
Конечно, это очень ограниченный пример, но он должен дать вам представление.