Sobes.tech
Назад к вопросам
Junior — Middle
66

Какими методами осуществляется внедрение зависимостей в фреймворк Spring?

Компании, где спрашивали
Firecode
AstonAston

Ответ от нейросети

sobes.tech AI

В Spring Framework внедрение зависимостей (Dependency Injection, DI) осуществляется тремя основными способами:

  1. Через конструктор (Constructor Injection) — зависимости передаются через параметры конструктора класса. Это самый рекомендуемый способ, так как позволяет создавать неизменяемые объекты и облегчает тестирование.

  2. Через сеттеры (Setter Injection) — зависимости устанавливаются через методы-сеттеры после создания объекта.

  3. Через поля (Field Injection) — зависимости внедряются напрямую в поля класса с помощью аннотации @Autowired. Этот способ менее предпочтителен из-за сложности тестирования и слабой инкапсуляции.

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

@Component
public class UserService {
    private final UserRepository userRepository;

    @Autowired
    public UserService(UserRepository userRepository) {
        this.userRepository = userRepository;
    }
    // методы класса
}

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