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

Какие знаешь способы внедрения одного Bean в другой в Spring

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

  1. Через конструктор (рекомендуемый способ):
java
@Service
public class UserService {
    private final UserRepository userRepository;
    
    @Autowired
    public UserService(UserRepository userRepository) {
        this.userRepository = userRepository;
    }
}
  1. Через setter-метод:
java
@Service
public class UserService {
    private UserRepository userRepository;
    
    @Autowired
    public void setUserRepository(UserRepository userRepository) {
        this.userRepository = userRepository;
    }
}
  1. Через поле (не рекомендуется для production):
java
@Service
public class UserService {
    @Autowired
    private UserRepository userRepository;
}
  1. Через метод (любой метод с @Bean в конфигурационном классе):
java
@Configuration
public class AppConfig {
    @Bean
    public UserRepository userRepository() {
        return new UserRepositoryImpl();
    }
}

С Spring 4.3+ @Autowired можно опускать для конструкторов с одним параметром. Также есть квалификаторы (@Qualifier) для разрешения неоднозначностей при нескольких реализациях интерфейса.

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

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

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

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