#spring #java
Подскажите пожалуйста, в чем разница между @Autowired, @Required и @Resource.
Ответы
Ответ 1
@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.
Комментариев нет:
Отправить комментарий