Я знаю, что есть вопросы, подобные этому, но ни один из них не помог мне. Я слежу за этим уроком , и часть, которую я не могу обернуть вокруг:
@SpringBootApplication
public class Application {
private static final Logger log =
LoggerFactory.getLogger(Application.class);
public static void main(String[] args) {
SpringApplication.run(Application.class);
}
@Bean
public CommandLineRunner demo(CustomerRepository repository) {
return (args) -> {
// save a couple of customers
...
// more lines, etc...
Чего я не понимаю, так это , откуда , из которого repository
перешел в demo
. Я знаю, что аннотация Autowired
может сделать что-то подобное, но здесь она вообще не используется.
Более конкретная причина, по которой я спрашиваю, заключается в том, что я пытаюсь адаптировать то, что они здесь делают, к приложению, над которым я работаю. У меня есть класс, отдельный от всех вещей персистентности / хранилища, и я хочу вызывать методы хранилища, такие как save
и findAll
. Проблема в том, что репозиторий является interface
, поэтому я не могу создать экземпляр этого объекта для вызова методов. Так я должен сделать новый класс, который implements
интерфейс и создать объект этого? Или есть более простой способ использования аннотаций?