Sobes.tech
Junior — Middle
94

Spring тәуелділіктерін енгізу кезінде @Autowired аннотациясын нақты көрсетпей-ақ жұмыс істей алады, неге?

AI-дан жауап

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 не нужен, так как конструктор один.