2013-09-19 3 views

ответ

24

@Autowired аннотаций используется, когда вы хотите для автопостановки компонента. @Autowired не ограничивается установщиком. Он также может использоваться с конструктором и полем. Если вы используете аннотацию @Autowired в поле, это поле будет автообновлено с bean, имеющим соответствующий тип данных.

@Required проверяет, установлено ли определенное свойство или нет. Если поле аннотируется аннотацией @Required и это поле не установлено, вы получите org.springframework.beans.factory.BeanInitializationException.

См:

Spring @Autowired usage

Recommended usage of Spring's @Required annotation

Edit: Как указано на 'Kryger': поле с аннотацией @Autowired эффективно также @Required (если явно не установлено требуется его параметр ложь). например:

@Autowired(required=false) 
private ObjectType objectType; 

Для поля, которое было аннотированным @Autowired, если фасоль с совпадающим типом данных в не доступен, org.springframework.beans.factory.BeanCreationException отбрасывается.

+6

Возможно, стоит добавить, что поле, аннотированное с помощью '@ Autowired', эффективно также' @ Required' (если вы явно не установили его параметр 'required' в false) – kryger

+0

@kryger Спасибо, что указали это. Я отредактировал свой ответ. –

+0

Требуется ли для выполнения во время конфигурации потребность в @Required need? – user2171669

Смежные вопросы