Встречается на собеседованиях • сегодня
Как лучше внедрять бин в Spring
В Spring есть несколько способов внедрения бинов:
- Через конструктор (рекомендуется)
Самый предпочтительный способ, так как обеспечивает неизменяемость и легкое тестирование.
java
@Service
public class UserService {
private final UserRepository repository;
@Autowired
public UserService(UserRepository repository) {
this.repository = repository;
}
}- Через сеттер
Подходит для опциональных зависимостей.
java
@Service
public class UserService {
private UserRepository repository;
@Autowired
public void setRepository(UserRepository repository) {
this.repository = repository;
}
}- Через поле (field injection)
Не рекомендуется из-за сложностей с тестированием и нарушением инкапсуляции.
java
@Service
public class UserService {
@Autowired
private UserRepository repository;
}Лучшие практики:
- Используйте конструкторное внедрение для обязательных зависимостей
- Для опциональных - сеттеры или
@Autowired(required = false) - Избегайте field injection в production коде
- В Spring 4.3+
@Autowiredна конструкторе можно опустить, если только один конструктор

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы