Sobes.tech
Назад к вопросам
Middle+
3

Какие методы инъекции бинов вы знаете в Spring?

Компании, где спрашивали
луция

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

sobes.tech AI

В Spring Framework существуют несколько основных способов инъекции бинов:

  1. Инъекция через конструктор — зависимости передаются через параметры конструктора класса. Это предпочтительный способ, так как позволяет создавать неизменяемые объекты и облегчает тестирование.
@Component
public class Service {
    private final Repository repo;

    @Autowired
    public Service(Repository repo) {
        this.repo = repo;
    }
}
  1. Инъекция через сеттеры (setter injection) — зависимости устанавливаются через методы-сеттеры. Позволяет менять зависимости после создания объекта.
@Component
public class Service {
    private Repository repo;

    @Autowired
    public void setRepository(Repository repo) {
        this.repo = repo;
    }
}
  1. Инъекция через поля (field injection) — зависимости внедряются напрямую в поля класса с помощью аннотации @Autowired. Менее предпочтительно из-за сложности тестирования и инкапсуляции.
@Component
public class Service {
    @Autowired
    private Repository repo;
}

Каждый способ имеет свои плюсы и минусы, но конструкторная инъекция считается наиболее чистой и рекомендуемой практикой.