Встречается на собеседованиях • сегодня

В чем разница между Autowired и Inject в Spring

Оба аннотации используются для внедрения зависимостей, но есть ключевые различия:

  1. Происхождение:
  • @Autowired - Spring-специфичная аннотация
  • @Inject - часть стандарта JSR-330 (javax.inject)
  1. Обязательность:
  • @Autowired(required=false) - зависимость не обязательна
  • @Inject не имеет атрибута required, всегда требует зависимости
  1. Дополнительные возможности:
  • @Autowired поддерживает @Qualifier для уточнения бина
  • @Inject использует @Named для той же цели

Пример:

java
// Spring way
@Autowired
@Qualifier("myService")
private MyService service;

// JSR-330 way
@Inject
@Named("myService")
private MyService service;

Выбор зависит от предпочтений: @Inject обеспечивает переносимость кода между DI-фреймворками, а @Autowired предлагает больше Spring-специфичных возможностей.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы