Назад к вопросам
Middle+
3
Какие методы инъекции бинов вы знаете в Spring?
Компании, где спрашивали
луция
Ответ от нейросети
sobes.tech AI
В Spring Framework существуют несколько основных способов инъекции бинов:
- Инъекция через конструктор — зависимости передаются через параметры конструктора класса. Это предпочтительный способ, так как позволяет создавать неизменяемые объекты и облегчает тестирование.
@Component
public class Service {
private final Repository repo;
@Autowired
public Service(Repository repo) {
this.repo = repo;
}
}
- Инъекция через сеттеры (setter injection) — зависимости устанавливаются через методы-сеттеры. Позволяет менять зависимости после создания объекта.
@Component
public class Service {
private Repository repo;
@Autowired
public void setRepository(Repository repo) {
this.repo = repo;
}
}
- Инъекция через поля (field injection) — зависимости внедряются напрямую в поля класса с помощью аннотации
@Autowired. Менее предпочтительно из-за сложности тестирования и инкапсуляции.
@Component
public class Service {
@Autowired
private Repository repo;
}
Каждый способ имеет свои плюсы и минусы, но конструкторная инъекция считается наиболее чистой и рекомендуемой практикой.