Новая версия Spring Boot «2.2.0» и год «2020» почти идеально подходят друг другу. Таким образом, команда Speedment теперь восполнила пробел, обновив плагин Spring Boot.
Если вы впервые слышите о Speedment, вас ждет удовольствие, так как мы покажем, как плагин Speedment Spring Boot позволяет разработчикам без особых усилий создавать приложения базы данных Spring с помощью Speedment, ORM с мощным API-интерфейсом запросов на основе потоков. , как его костяк.
О скорости
Скорость можно описать как ORM, которого заслуживает сообщество Java — набор инструментов для тех, кто любит быструю разработку и даже более быстрые приложения. Благодаря использованию Java Stream API в качестве основного средства связи с выбранной базой данных, Speedment позволяет разработчикам с предыдущим опытом работы с Java чувствовать себя как дома. Помимо простого в использовании API, Speedment предоставляет разработчикам графический инструмент, который генерирует для них модель предметной области в считанные секунды.
Если вы заинтересованы в Speedment в целом, перейдите по следующей ссылке для получения подробной документации с примерами . Остальная часть этой статьи будет посвящена плагину Spring Boot.
Вам также может понравиться:
Как создать REST API с помощью Spring Boot
Плагин Speedment Spring Boot существует уже некоторое время, но начиная с Speedment 3.2.2 была представлена основная функция — возможность генерировать весь CRUD REST API непосредственно из вашей модели базы данных.
В зависимости от того, начинаете ли вы с нуля или у вас уже есть проект, шаги будут отличаться, но будьте уверены, что процесс интеграции будет легким независимо от состояния вашего проекта.
Если вы хотите интегрировать Spring Boot в существующий проект Speedment, вам необходимо добавить следующие 2 предложения в ваш файл pom.xml:
XML
xxxxxxxxxx
1
<plugin>
2
<groupId>com.speedment.enterprise</groupId>
3
<artifactId>speedment-enterprise-maven-plugin</artifactId>
4
<version>${speedment.version}</version>
5
<configuration>
7
<components>
8
<component>com.speedment.enterprise.plugins.spring.SpringGeneratorBundle</component>
9
</components>
10
<appName>${project.artifactId}</appName>
11
<packageName>${project.groupId}</packageName>
12
</configuration>
13
... // Database connector dependency
14
</plugin>
15
<dependencies>
16
...
17
<dependency>
18
<groupId>javax.annotation</groupId>
19
<artifactId>javax.annotation-api</artifactId>
20
<version>1.3.1</version>
21
</dependency>
22
<dependency>
23
<groupId>org.springframework.boot</groupId>
24
<artifactId>spring-boot-starter-web</artifactId>
25
<version>2.2.1.RELEASE</version>
26
</dependency>
27
<dependency>
28
<groupId>com.speedment.enterprise.plugins</groupId>
29
<artifactId>spring-runtime</artifactId>
30
<version>${speedment.version}</version>
31
</dependency>
32
...
33
</dependencies>
После добавления при следующей регенерации модели вашего домена должна быть сгенерирована конфигурация Spring для конкретной скорости. Сгенерированная конфигурация обрабатывает свойства соединения с базой данных и регистрации компонентов для различных менеджеров, созданных Speedment.
Если вы начинаете с нуля, перейдите к инициализатору проекта, где для вас будет создан проект, готовый для Spring-Boot. Как вы будете настраивать проект, зависит от вас, но чтобы включить плагин Spring Boot в сгенерированный проект, убедитесь, что установлен флажок рядом с Spring в разделе плагинов. Когда вы будете удовлетворены конфигурацией проекта, нажмите кнопку «Загрузить», и вы получите готовый к использованию архивированный проект.
CRUD Made Easy
Как только вы установите плагин, в инструменте Speedment будут доступны некоторые специфичные для Spring Boot опции, которые можно использовать для настройки вашего REST API. Вы можете запустить инструмент Speedment, выполнив следующую команду:
Джава
xxxxxxxxxx
1
mvn speedment:tool
Если вы впервые используете Speedment, возможно, вы захотите ознакомиться с рабочим процессом, следуя краткому руководству «Hello Speedment» .
По умолчанию инструмент Speedment не генерирует REST API. Чтобы сгенерировать CRUD REST API для конкретной таблицы, выберите таблицу в древовидном представлении и установите флажок «Generate @RestController» вместе с параметром «REST Enable Create / Update / Delete». Нажав «Создать», будет создан набор отображений REST, которые реализуют операции CRUD для конкретной таблицы.
Это оно! Ручное кодирование не требуется. Просто запустите сгенерированный Spring, выполнив команду:
Джава
xxxxxxxxxx
1
mvn spring-boot:run
Создание сущностей с использованием REST
Чтобы создать новый объект, используя созданный вами REST API, вы должны выполнить запрос POST к маршруту, указанному в инструменте. По умолчанию имя этого маршрута совпадает с именем вашей таблицы, с префиксом имени вашей схемы. Если вы снимите флажок «Конечная точка REST», вы можете указать произвольное имя маршрута. Тело запроса должно содержать пары ключ-значение в объекте JSON, где значения «Имя поля REST» из инструмента являются ключами.
Если бы у нас была таблица с именем person с столбцами id, name и age, мы бы отправили следующий запрос для создания новой сущности person:
Джава
xxxxxxxxxx
1
POST localhost:8080/db/person
2
{
3
"id": 1,
4
"name": "Jane",
5
"age": 25
6
}
Джава
xxxxxxxxxx
1
curl -d '{"id": 1,"name": "Jane","age": 25}' -H "Content-Type:application/json" -X POST localhost:8080/db/person
Если столбец генерируется автоматически (или использует последовательность), вы можете исключить его из тела POST. Если вы хотите принудительно исключить определенный столбец из тела POST, щелкните соответствующий столбец в представлении дерева инструментов и снимите флажок «Включить в создание тела» и заново создайте модель вашего домена. С другой стороны, если вы хотите обеспечить наличие определенного столбца в теле POST при выполнении запроса, отметьте «Обязательно в Create Body» и заново создайте модель вашего домена.
Извлечение сущностей с помощью REST
Чтобы получить наш недавно созданный объект, мы должны выполнить запрос GET по тому же пути, который использовался для создания объекта:
Джава
xxxxxxxxxx
1
GET localhost:8080/db/person
Джава
xxxxxxxxxx
1
curl localhost:8080/db/person/1
Выполненный запрос вернет JSON Array всех существующих объектов. В нашем случае он вернул бы массив только с нашей единственной сущностью:
Джава
xxxxxxxxxx
1
[
2
{
3
"id": 1,
4
"name": "Jane",
5
"age": 25
6
}
7
]
Расширенные концепции, такие как фильтры и сортировщики, подробно описаны в официальной документации Speedment.
Обновление существующих объектов с помощью REST
Обновление существующей сущности с использованием REST API выполняется аналогично созданию сущности. Вместо запроса POST мы выполняем запрос PATCH, и маршрут расширяется идентификатором объекта. Какой идентификатор нашей сущности зависит от столбца первичного ключа этой таблицы. Поскольку наш столбец PK является числовым типом, идентификатор нашей сущности будет целым числом.
Чтобы обновить сущность, которую мы создали в нашем предыдущем примере, мы выполнили бы следующий запрос:
Джава
xxxxxxxxxx
1
PATCH localhost:8080/db/person/1
2
{
3
"name": "Mike",
4
"age": 43
5
}
Джава
xxxxxxxxxx
1
curl -d '{"name": "Jane","age": 25}' -H "Content-Type:application/json" -X PATCH localhost:8080/db/person/1
По умолчанию все столбцы включены в тело PATCH (кроме столбца первичного ключа), но они не являются обязательными. Если вы хотите принудительно исключить определенный столбец из тела запроса, щелкните соответствующий столбец в представлении дерева инструментов, снимите флажок «Включить в тело обновления» и создайте модель вашего домена. С другой стороны, если вы хотите обеспечить наличие столбца в теле запроса, отметьте «Обязательно в теле обновления» и обновите модель вашего домена.
Удаление сущностей с помощью REST
Удалить сущность с помощью REST API довольно просто - мы выполняем запрос DELETE по тому же пути, который используется для обновления сущностей.
Чтобы удалить сущность, которую мы создали и обновили в предыдущих примерах, мы выполнили бы следующий запрос:
Джава
xxxxxxxxxx
1
DELETE localhost:8080/db/person/1
Джава
xxxxxxxxxx
1
curl -X DELETE localhost:8080/db/person/1
Резюме
Запуск новых проектов иногда может быть суетой. Как разработчики, мы хотим максимально избежать этих неудобств и погрузиться прямо в кодирование. С новым плагином Speed Boot Spring Boot разработчики могут опередить игру, автоматически генерируя все необходимые конфигурации и контроллеры REST непосредственно из базы данных.
Мы надеемся, что вам понравилось это краткое руководство по новым функциям CRUD, которые предоставляет плагин Speedment Spring Boot. Если вас интересует более подробное объяснение новых функций, перейдите к официальной документации, где вы найдете подробные объяснения и примеры новых функций CRUD.
Дальнейшее чтение
Создание API REST. Часть 4. Обработка запросов POST, PUT и DELETE.
Создание базового приложения CRUD RESTful Spring Boot для MVC: начало работы с Java Spring