Прежде всего, чтобы понять смысл @Resource
, вам необходимо понять инверсию контроля (IoC) .
инверсию управления - этопринцип в разработке программного обеспечения, который заключается в том, что управление объектами должно быть передано в контейнер или структуру.
Внедрение зависимостей (DI) - это схема реализации IoC, где инвертируемый элемент управления является настройкой зависимостей объекта.Композиция объектов с другими объектами (инъекция) выполняется контейнером, а не самими объектами.
Используя структуру DI (например, Spring IoC
или EJB
), вы создаете свои POJO иконфигурирование фреймворка (POJO настроен так называемым Bean
)
Пока все хорошо.Что дальше?Пришло время использовать наши бобы .
@Resource
- это аннотации, которые помогут извлечь бобов из контейнера.
Существует несколькопараметры поиска для извлечения бобов:
- Совпадение по имени
- Совпадение по типу
- Совпадение по классификатору
Использование @Resource
безлюбые параметры будут вызывать совпадение по типу тип поиска.
Существует пример использования или @Resource
с внедрением поля и Spring Framework с конфигурацией на основе Java и совпадение по имени:
@Configuration
public class ApplicationContext {
// Put the bean into the spring container
@Bean(name = "userFile")
public File userFile() {
File file = new File("user.txt");
return file;
}
}
@Service
class UserService {
// Ask the container to 'put' the bean here
@Resource(name = "userFile")
private File userFile;
}
@Resource
обычно используется для ввода источников данных, одноуровневых сервисов, контекстных конфигураций и т. Д.