Я пытаюсь создать тестовые данные, чтобы пользователь мог поиграть с приложением Spring. Я подумал о создании отдельного класса в пакете утилит, чтобы сделать это. Моя идея состоит в том, чтобы создать статический блок внутри этого класса, создать несколько объектов и сохранить их в хранилище. Проблема, с которой я сталкиваюсь, заключается в том, что я не могу использовать репозиторий, потому что я не могу использовать инъекцию зависимостей внутри статического блока или репозиторий, внедренный вне кода.
Моя неработающая идея выглядит так:
public class SampleData {
@Autowired
BookRepository bookRepository;
static{
List<Book> booksToAdd = Arrays.asList(
new Book("Pan Tadeusz", "Adam Mickiewicz"),
new Book("Pożegnanie z Bronią", "Ernest Hemingway")
);
for(Book book : booksToAdd){
bookRepository.save(book);
}
}
}
Компилятор жалуется на: bookRepository.save(book);
, что на него нельзя ссылаться из статического контекста. Вы думаете, что это можно как-то исправить?
Я знаю, что есть также метод с файлом data.sql, но мне не нравится работать с sql, и я ищу решение Java для этого.