Встречается на собеседованиях • сегодня

Какими способами можно реализовать внедрение зависимостей

В Java есть несколько способов внедрения зависимостей:

  1. Constructor Injection (рекомендуемый)
java
public class UserService {
    private final UserRepository repo;
    
    public UserService(UserRepository repo) {
        this.repo = repo;
    }
}
  1. Setter Injection
java
public class UserService {
    private UserRepository repo;
    
    public void setRepo(UserRepository repo) {
        this.repo = repo;
    }
}
  1. Field Injection (не рекомендуется)
java
public class UserService {
    @Autowired
    private UserRepository repo;
}
  1. Interface Injection (редко используется)
java
public interface RepositoryInjector {
    void inject(UserRepository repo);
}
  1. Через DI-фреймворки (Spring, Guice, CDI)
java
@Controller
public class UserController {
    @Autowired
    private UserService userService;
}

Лучшие практики: предпочитать constructor injection (легче тестировать, явные зависимости, иммутабельность). Field injection скрывает зависимости и усложняет тестирование.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы