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

Как получить доступ к бину используя IoC

В Spring доступ к бину можно получить несколькими способами:

  1. Через внедрение зависимостей (DI) - самый распространённый способ:
java
@Service
public class MyService {
    @Autowired
    private OtherService otherService;
}
  1. Через конструктор (рекомендуемый способ):
java
@Service
public class MyService {
    private final OtherService otherService;
    
    public MyService(OtherService otherService) {
        this.otherService = otherService;
    }
}
  1. Через ApplicationContext:
java
ApplicationContext context = ...;
MyService service = context.getBean(MyService.class);
  1. Через @Resource или @Inject (альтернативы @Autowired)

Для внедрения бина по имени можно использовать:

java
@Autowired
@Qualifier("specificBean")
private MyInterface myBean;

Лучшей практикой считается внедрение через конструктор, так как это делает зависимости явными и позволяет делать бины immutable.

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

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

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

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