#spring-boot #spring-mvc
#spring-boot #spring-mvc
Вопрос:
У меня есть список объектов Book, которые необходимо инициализировать при запуске Spring boot. Список книг постоянен, и из-за оптимизации БД я не хочу хранить данные в базе данных и вызывать их каждый раз.
Класс Book выглядит следующим образом:
Class Book{
private String name;
private String author;
private int pages;
private boolean issued;
}
constructors, getters and setters ....
Предположим, у меня есть 3 книги как (book1, author1,100, true), (book2,author2,50, false) и (book3,author3,350, true)
Какой наилучший способ инициализации списка при запуске Spring. Более того, как только инициализация будет выполнена, это лучший способ, которым я могу вернуть его через метод Get endpoint в контроллере как
@GetMapping(value="/books")
public List<Book> getBooks(){
....
return <List of three books>;
}
Заранее спасибо.
С уважением, Sameekshya
Ответ №1:
@Component
public class BookService implements CommandLineRunner {
private List<Book> bookList = new ArrayList<>();
getters();
@Override
public void run(String...args) throws Exception {
// add book to the bookList
}
}
Получить доступ к списку объектов в контроллере —
@Autowired
private BookService service;
@GetMapping(value="/books")
public List<Book> getBooks(){
....
return service.getBookList();
}