Sobes.tech
Back to questions
Junior — Middle
58

Какие методы внедрения зависимостей предоставляет Spring Framework?

Companies where asked
МеталлИнвестБанк

Answer from AI

sobes.tech AI

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

  • Внедрение через конструктор — зависимости передаются через параметры конструктора класса. Это предпочтительный способ, так как позволяет делать зависимости обязательными и облегчает тестирование.

  • Внедрение через сеттеры (setter injection) — зависимости устанавливаются через методы-сеттеры после создания объекта.

  • Внедрение через поля (field injection) — зависимости внедряются напрямую в поля класса с помощью аннотации @Autowired. Этот способ менее предпочтителен из-за сложности тестирования и инкапсуляции.

Пример внедрения через конструктор:

@Component
public class UserService {
    private final UserRepository userRepository;

    @Autowired
    public UserService(UserRepository userRepository) {
        this.userRepository = userRepository;
    }

    // методы
}

Spring автоматически разрешает зависимости и внедряет нужные бины в компоненты.

Также Spring поддерживает внедрение зависимостей через XML-конфигурацию, но в современных приложениях чаще используют аннотации и Java-конфигурацию.