Вы можете сделать это:
public SomeClass (Repo repo) {
this.repo = repo;
}
если вы планируете создать объект самостоятельно.
Но так как вы хотите, чтобы контейнер создавал ваши объекты (бины), вы указываете ему вводить вашу Repo
зависимость во время создания SomeClass
bean-компонента. Вы делаете это, добавляя @Autowired
поверх вашего конструктора.
Вы также можете сделать это (инъекция в поле):
@Component
public class SomeClass {
@Autowired
private Repo repo;
}
Но для облегчения модульного тестирования предпочтительнее внедрение в конструктор.
Обратите внимание, что начиная с Spring 4.3 @Autowired
больше не требуется в конструкторе.
EDIT
Лучше, при использовании Lombok
вы можете сделать это:
@Component
@RequiredArgConstructor
public class SomeClass {
private final Repo repo;
}
Ломбок сгенерирует конструктор
public SomeClass (Repo repo) {
this.repo = repo;
}
для вас и контейнер будет вводить зависимость.