62просмотров
25.1%от подписчиков
24 августа 2024 г.
Score: 68
@Resource - так же используется для внедрения зависимостей, аналогично @Autowired, но с некоторыми особенностями. Она принадлежит к пакету javax.annotation и используется в основном в приложениях на основе Java EE, но так же может применяться и в Spring. Так же как и @Autowired ставится над полем, конструктором, setter методом, методом конфигурации.
✅ В отличие от @Autowired, который по умолчанию внедряет зависимости по типу, @Resource по умолчанию ищет зависимость по имени. ✅ Если имя зависимости совпадает с именем поля, то Spring будет пытаться внедрить зависимость с соответствующим именем. Если имя не указано, а поле или метод, на который применена аннотация, имеет уникальный тип среди всех бинов, то Spring попытается внедрить зависимость по типу.
💻 Пример внедрения зависимости по имени, если необходимо внедрить по типу то достаточно удалить (name = "myRepository")
public class MyService { @Resource(name = "myRepository") private Repository repository; }
P.S. на практике в основном используется внедрение через конструктор, либо через
@Autowired.