Встречается на собеседованиях • сегодня
Какие знаешь способы внедрения одного Bean в другой в Spring
В Spring есть несколько способов внедрения зависимостей (DI):
- Через конструктор (рекомендуемый способ):
java
@Service
public class UserService {
private final UserRepository userRepository;
@Autowired
public UserService(UserRepository userRepository) {
this.userRepository = userRepository;
}
}- Через setter-метод:
java
@Service
public class UserService {
private UserRepository userRepository;
@Autowired
public void setUserRepository(UserRepository userRepository) {
this.userRepository = userRepository;
}
}- Через поле (не рекомендуется для production):
java
@Service
public class UserService {
@Autowired
private UserRepository userRepository;
}- Через метод (любой метод с @Bean в конфигурационном классе):
java
@Configuration
public class AppConfig {
@Bean
public UserRepository userRepository() {
return new UserRepositoryImpl();
}
}С Spring 4.3+ @Autowired можно опускать для конструкторов с одним параметром. Также есть квалификаторы (@Qualifier) для разрешения неоднозначностей при нескольких реализациях интерфейса.

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