@Required
Состояния документации (выделено мое):
Помечает метод (как правило, метод установки JavaBean) как
'required': то есть метод установки должен быть настроен так, чтобы
вводится зависимость со значением.
В Spring для настройки метода как внедренной зависимости вы должны указать его (@Autowired
является стандартным способом).
Но указание @Autowired
и @Required
на метод сегодня кажется неуклюжим:
@Autowired
@Required
public void setN(int n) {
System.out.println("setter");
this.n = n;
}
Вместо этого, чтобы настроить сеттер как на инжекцию зависимости, так и на необходимость, я советую использовать только @Autowired
, который по умолчанию требуется, как вы можете заметить:
public @interface Autowired {
/**
* Declares whether the annotated dependency is required.
* <p>Defaults to {@code true}.
*/
boolean required() default true;
}
Так что достаточно:
@Autowired
public void setN(int n) {
System.out.println("setter");
this.n = n;
}
В качестве дополнительного примечания, внедрение сеттера, вероятно, завершится неудачей, поскольку int n
, вероятно, не будет разрешено как зависимость. @Value
примечание к параметру, вероятно, может помочь вам.