Страницы

Поиск по вопросам

понедельник, 1 апреля 2019 г.

Аннотации Springа

Подскажите пожалуйста, в чем разница между @Autowired, @Required и @Resource


Ответ

@Required отмечает свойства бина, которые обязательно должны быть установлены. @Autowired используется для автоматического внедрения зависимости. Вы отмечаете им некое свойство в бине и Spring сам создаст экземпляр класса, подходящего для этого свойства. @Resource, в отличие от @Autowired, позволяет передать в качестве зависимости конкретный бин по его имени. Все достаточно неплохо описано в документации Пример. class Foo { private Bar bar;
public void setBar(Bar bar) { this.bar = bar; } } Если вы хотите, чтобы Spring сам нашел подходящий класс и передал его экземпляр в setBar() проставьте перед методом аннотацию @Autowired Если вы хотите передать конкретный бин, в качестве параметра setBar(), воспользуйтесь аннотацией @Resource(name="myBarBean") Если свойство foo обязательно должно заполняться, добавьте аннотацию @Required

Комментариев нет:

Отправить комментарий