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

Какой знаешь лучший способ внедрить бин

В Spring есть несколько способов внедрения зависимостей (Dependency Injection):

  1. Через конструктор (рекомендуемый способ)
java
@Service
public class UserService {
    private final UserRepository userRepository;
    
    @Autowired
    public UserService(UserRepository userRepository) {
        this.userRepository = userRepository;
    }
}
  1. Через поле (не рекомендуется из-за проблем с тестированием)
java
@Service
public class UserService {
    @Autowired
    private UserRepository userRepository;
}
  1. Через сеттер
java
@Service
public class UserService {
    private UserRepository userRepository;
    
    @Autowired
    public void setUserRepository(UserRepository userRepository) {
        this.userRepository = userRepository;
    }
}

Лучшей практикой считается внедрение через конструктор, так как:

  • Делает зависимости явными
  • Облегчает тестирование
  • Позволяет делать поля final
  • Не требует @Autowired (начиная с Spring 4.3+ для конструкторов с одним параметром)
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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