Sobes.tech
Back to questions
Middle+
6

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

Companies where asked
луция

Answer from AI

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;
}

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