Обычный Autowire из класса, помеченного @Component или @Bean, будет работать с вышеупомянутыми способами.
Но если вы хотите автоматически подключить интерфейс, расширяющий Jpa-репозиторий, убедитесь, что Dao не являетсяобъект, но класс.
ex:
DAO:
object dao{
@Autowired val repo: jpaRepo = null
}
Это не будет работать (проверено).Я предполагаю, что, поскольку он определен как объект, его экземпляр создается во время выполнения с репо в качестве нулевого значения, следовательно, он не сможет автоматически связывать репо jpa.
Вместо этого объявите его как класс и пометьте @Component:
@Component
class dao{
@Autowired val repo: jpaRepo = null
}
Это работает, так как мы даем Spring возможность управлять созданием объекта (@component), который автоматически связывает репозиторий jpa.