Встречается на собеседованиях • сегодня
Какие знаешь способы инъекции в Spring
В Spring есть несколько способов внедрения зависимостей (Dependency Injection, DI):
- Через конструктор (рекомендуемый способ):
java
@Service
public class UserService {
private final UserRepository repository;
@Autowired // можно опустить начиная с Spring 4.3
public UserService(UserRepository repository) {
this.repository = repository;
}
}- Через сеттеры:
java
@Service
public class UserService {
private UserRepository repository;
@Autowired
public void setRepository(UserRepository repository) {
this.repository = repository;
}
}- Прямо в поле (менее предпочтительно из-за сложности тестирования):
java
@Service
public class UserService {
@Autowired
private UserRepository repository;
}- Через метод (любой метод с @Bean в конфигурации)
java
@Configuration
public class AppConfig {
@Bean
public UserRepository userRepository() {
return new UserRepositoryImpl();
}
}Spring также поддерживает автоподключение по типу (byType) и по имени (byName). Начиная с Spring 4.3, аннотация @Autowired для конструктора не обязательна, если есть только один конструктор.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы