Назад к вопросам
Junior — Middle
65
Почему в Spring можно обойтись без явного указания аннотации @Autowired при внедрении зависимостей?
Ответ от нейросети
sobes.tech AI
В Spring начиная с версии 4.3, если класс имеет единственный конструктор, то Spring автоматически использует его для внедрения зависимостей без необходимости явно указывать аннотацию @Autowired.
Это упрощает код и делает его чище. Таким образом, @Autowired нужен:
- Если у класса несколько конструкторов — чтобы указать, какой использовать.
- Для внедрения зависимостей через поля или сеттеры.
Пример:
@Component
public class MyService {
private final Repository repo;
// Единственный конструктор — Spring внедрит зависимость автоматически
public MyService(Repository repo) {
this.repo = repo;
}
}
Здесь @Autowired не нужен, так как конструктор один.