Аннотация @Required — это фишка Spring Framework, которая нужна, чтобы заставить явно устанавливать определённое свойство бина. Она проверяет, было ли это обязательное свойство сконфигурировано перед тем, как бин полностью инициализируется.
Когда ты помечаешь сеттер аннотацией @Required, контейнер Spring проверяет, присвоено ли этому свойству значение. Если свойство остаётся не установленным, Spring выбрасывает BeanInitializationException во время инициализации бина, и приложение не запустится с неполной конфигурацией.
Чтобы использовать аннотацию @Required, ты должен зарегистрировать RequiredAnnotationBeanPostProcessor в своём конфиге Spring. Этот пост-процессор ловит аннотации @Required и выполняет проверку.
<bean class="org.springframework.beans.factory.annotation.RequiredAnnotationBeanPostProcessor"/>
public class MyBean {
private String requiredProperty;
@Required
public void setRequiredProperty(String value) {
this.requiredProperty = value;
}
}
Аннотация @Required помечена как deprecated в Spring 5.1 в пользу constructor injection или ObjectProvider, которые дают более гибкие и типобезопасные варианты для работы с обязательными зависимостями.
Аннотация @Required может быть применена к любому методу в Spring бине, не только к setter методам, для принудительной валидации свойств.
Новый — ещё не проверен сообществом
Вы