Пример веб-приложения на Spring Boot

Отвечая на вопрос «Как отобразить данные из БД» на Тостере, написал небольшое веб-приложение, использующее Spring Framework, Boot и Data и JSP/JSTL в качестве способа отображения страниц. Задача — написать простую книгу отзывов, которая может вывести список отзывов и добавить новый.

Для начала создадим новый Maven веб-проект и добавим необходимые зависимости. Итоговый pom-файл выглядит следующим образом:

Обратите внимание на то, что для standalone-режима нам понадобится зависимость tomcat-embed-jasper для работы в JSP/JSTL. Теперь опишем класс, который будет запускать приложение:

Метод main позволит запустить приложение без развёртывания в сервлет-контейнере, а метод configure из SpringBootServletInitializer позволяет запустить приложение в сервлет-контейнере.

Теперь займёмся конфигурацией:

Здесь мы указываем, что представления будут браться из ресурсов приложения. Поиск представлений с расширением .jspx будет вестись относительно директории /WEB-INF/views.

Нам понадобится класс-сущность. Структура его достаточно простая, нам понадобится идентификатор, текст отзыва и дата отзыва:

Аннотация @GeneratedValue говорит фреймворку, что идентификатор должен быть сгенерирован. В данном случае стратегия GenerationType.IDENTITY будет преобразована в AUTO_INCREMENT в MySQL и в Serial в PostgreSQL.

По умолчанию текстовые поля преобразуются в VARCHAR(255) в SQL, но свойство, содержащее текст отзыва, может содержать больше 255 символов, так что нужно указать SQL-тип TEXT, как это показано в аннотации @Column.

Ну и в случае с датой добавления отзыва нужно указать аннотацию @Temporal, как это требует JPA. В качестве её значения нужно указать TIMESTAMP, так как нас интересует дата и время добавления отзыва.

Для работы с базой данных будем использовать репозиторий Spring Data:

Поскольку у нас в примере будет только два действия, то написание дополнительных методов будет лишним.

Опишем контроллер, который будет выполнять все действия:

POST-запрос будет добавлять новую запись в список отзывов и перенаправлять на главную страницу сайта. На главной странице мы будем видеть список отзывов.

Ну и наконец опишем нашу JSPX-страницу с отзывами:

Теперь можно посмотреть запустить приложение, развернув в сервлет-контейнере, либо выполнив команду

Работающее приложение:

spring-boot-guestbook

Полезные ссылки: