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

Какие знаешь способы инъекций в Spring

В Spring есть несколько типов инъекций зависимостей (DI):

  1. Constructor Injection (рекомендуемый способ):
java
@Service
public class UserService {
    private final UserRepository repo;

    @Autowired
    public UserService(UserRepository repo) {
        this.repo = repo;
    }
}
  1. Setter Injection:
java
@Service
public class UserService {
    private UserRepository repo;
text
@Autowired
public void setRepo(UserRepository repo) {
    this.repo = repo;
}

}

text

3. **Field Injection** (не рекомендуется, но используется):  
```java
@Service
public class UserService {
    @Autowired
    private UserRepository repo;
}
  1. Метод произвольного класса (реже используется):
java
@Configuration
public class AppConfig {
    @Bean
    public UserService userService(@Autowired UserRepository repo) {
        return new UserService(repo);
    }
}

Spring 4.3+ позволяет опускать @Autowired для конструкторов, если в классе только один конструктор. Лучшая практика — использовать constructor injection, так как он обеспечивает неизменяемость и удобен для тестирования.

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

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

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

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