Back to questions
Junior — Middle
94
Какими методами можно реализовать инжектирование зависимостей в Spring?
Answer from AI
sobes.tech AI
В Spring инжектирование зависимостей можно реализовать следующими способами:
- Через конструктор — зависимости передаются через параметры конструктора класса. Это предпочтительный способ, так как позволяет делать зависимости обязательными и облегчает тестирование.
@Component
public class Service {
private final Repository repository;
@Autowired
public Service(Repository repository) {
this.repository = repository;
}
}
- Через сеттеры (setter injection) — зависимости устанавливаются через методы-сеттеры, помеченные аннотацией
@Autowired.
@Component
public class Service {
private Repository repository;
@Autowired
public void setRepository(Repository repository) {
this.repository = repository;
}
}
- Через поля (field injection) — зависимости внедряются напрямую в поля класса с помощью
@Autowired.
@Component
public class Service {
@Autowired
private Repository repository;
}
Поле инжектирование проще, но менее гибкое и сложнее для тестирования.
Также можно использовать XML-конфигурацию, но в современных проектах предпочтительнее аннотации и Java-конфигурация.