С четвертым выпуском Spring Boot разработка корпоративных приложений для Интернета стала намного проще. Что-то, что все еще требует много времени от имени разработчика, моделирует существующую базу данных для примера Hibernate, чтобы получить объектно-ориентированное представление данных. В этом уроке мы рассмотрим, как использовать инструмент с открытым исходным кодом Speedment вместе с Spring для создания сущностей, менеджеров и контроллеров одним нажатием кнопки, что позволит вам начать разработку намного быстрее.
О скорости
Speedment — это Java-инструментарий с открытым исходным кодом, позволяющий разработчику быстро генерировать все необходимое для взаимодействия с базой данных. Используя графический инструмент, вы можете подключиться к базе данных и генерировать Java-источники в считанные секунды. Speedment построен по модульному принципу, как и Spring, что упрощает изучение и использование только тех частей, которые вам интересны. В этой статье мы собираемся использовать плагин для Speedment для генерации контроллеров Spring в дополнение к стандартным файлам.
Шаг 1: Создание нового проекта Spring Boot
Spring Boot состоит из нескольких шаблонов, облегчающих начало работы с новым приложением. Мы собираемся использовать один из них «spring-boot-starter-web», чтобы подготовить почву для нашего веб-приложения.
Начните с создания нового проекта Maven и добавьте в файл «pom.xml» следующее:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
<? xml version = "1.0" encoding = "UTF-8" ?> < project xmlns = "http://maven.apache.org/POM/4.0.0" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation = "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" > < modelVersion >4.0.0</ modelVersion > < parent > < groupId >org.springframework.boot</ groupId > < artifactId >spring-boot-starter-parent</ artifactId > < version >1.4.1.RELEASE</ version > </ parent > < groupId >com.github.pyknic</ groupId > < artifactId >speedment-spring-example</ artifactId > < version >1.0.0-SNAPSHOT</ version > < packaging >jar</ packaging > < properties > < java.version >1.8</ java.version > < speedment.version >3.0.1</ speedment.version > < mysql.version >5.1.39</ mysql.version > </ properties > < build > < plugins > < plugin > < groupId >org.springframework.boot</ groupId > < artifactId >spring-boot-maven-plugin</ artifactId > </ plugin > < plugin > < groupId >com.speedment</ groupId > < artifactId >speedment-maven-plugin</ artifactId > < version >${speedment.version}</ version > < dependencies > < dependency > < groupId >mysql</ groupId > < artifactId >mysql-connector-java</ artifactId > < version >${mysql.version}</ version > </ dependency > < dependency > < groupId >com.speedment.plugins</ groupId > < artifactId >spring-generator</ artifactId > < version >${speedment.version}</ version > </ dependency > </ dependencies > < configuration > < components > < component >com.speedment.plugins.spring.SpringGeneratorBundle</ component > </ components > </ configuration > </ plugin > </ plugins > </ build > < dependencies > < dependency > < groupId >com.speedment</ groupId > < artifactId >runtime</ artifactId > < version >${speedment.version}</ version > < type >pom</ type > </ dependency > < dependency > < groupId >com.speedment.plugins</ groupId > < artifactId >spring-generator</ artifactId > < version >${speedment.version}</ version > </ dependency > < dependency > < groupId >mysql</ groupId > < artifactId >mysql-connector-java</ artifactId > < version >${mysql.version}</ version > </ dependency > < dependency > < groupId >org.springframework.boot</ groupId > < artifactId >spring-boot-starter-web</ artifactId > </ dependency > </ dependencies > </ project > |
Это настроит ваш проект как приложение Spring Boot и скажет ему использовать Speedment с плагином Spring Generator.
Шаг 2: Использование ускорения для генерации источников
После изменения файла pom в IDE будет доступен ряд новых целей Maven. Скорость можно использовать как графически, так и из командной строки. В этом уроке мы будем использовать пользовательский интерфейс. Чтобы запустить Speedment Tool, выполните следующую цель Maven в проекте:
1
|
mvn speedment:tool |
Откроется диалоговое окно, которое позволит вам подключиться к базе данных. После подключения вы увидите окно с обзором базы данных слева и различными параметрами конфигурации в центре. Для этого урока подойдут настройки по умолчанию, поэтому просто нажмите «Создать» на панели инструментов.
Если вы переключитесь обратно в IDE, вы увидите новые сгенерированные источники. Вы заметите, что каждый класс существует в двух экземплярах, один с префиксом «Сгенерировано». Причина этого состоит в том, чтобы разрешить внесение изменений без риска перезаписи изменений, если в какой-то момент вам понадобится восстановить источники. Файлы с префиксом «Сгенерировано» всегда будут перезаписываться, а файлы без него будут создаваться только один раз.
Шаг 3: Создать основной файл
Компания Speedment создала полную объектно-ориентированную модель базы данных, но нам все еще нужно создать точку входа для приложения. Мы поместим это в основной пакет и назовем его Main.java.
Main.java
01
02
03
04
05
06
07
08
09
10
11
12
13
14
|
package com.github.pyknic.spring; import com.speedment.common.logger.Level; import com.speedment.common.logger.LoggerManager; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class Main { public static void main(String... args) { SpringApplication.run(Main. class , args); } } |
Если мы запустим приложение, Spring Boot настроит автономное веб-приложение с сгенерированным контроллером для каждой таблицы в базе данных. Мы можем попробовать это, перейдя по следующему пути в браузере:
1
|
http: //localhost:8080/hare/ |
Теперь будет возвращено JSON-представление таблицы «заяц» в моей базе данных.
1
2
3
4
5
|
[ { "id" : 1 , "name" : "Harry" , "color" : "Gray" , "age" : 3 }, { "id" : 2 , "name" : "Henrietta" , "color" : "White" , "age" : 2 }, { "id" : 3 , "name" : "Henry" , "color" : "Black" , "age" : 9 } ] |
Примечание № 1: Если вы получаете исключение, которое говорит что-то в стиле этого …
1
2
3
|
There was an unexpected error (type=Internal Server Error, status= 500 ). Could not write content: No value present (through reference chain: java.util.ArrayList[ 0 ]... |
… Это, вероятно, означает, что в вашей базе данных есть обнуляемые столбцы, которые Speedment выберет для реализации в качестве OptionalLong, OptionalInt и т. Д. Вы можете отключить эту функцию в инструменте Speedment, установив для поля «Обнуляемая реализация» значение WRAPPER вместо OPTIONAL для этих столбцов.
Примечание № 2: Если вы получаете исключение в стиле этого …
1
2
|
java.sql.SQLException: Access denied for user 'root' @ 'localhost' (using password: YES) |
… Вам нужно будет создать файл application.properties в корневом каталоге проекта и добавить данные для аутентификации для вашей базы данных.
application.properties
1
2
|
jdbc.username=root jdbc.password=password |
Резюме
В этой статье мы использовали плагин Speedment и Spring Generator для автоматического создания завершенного Spring Boot Application. Компания Speedment создала сущности, менеджеров и контроллеры REST для связи с базой данных. Если вы хотите узнать больше о Speedment и о том, как вы можете управлять сгенерированным кодом, ознакомьтесь со многими примерами на странице Speedment GitHub !
Ссылка: | Создание REST API с помощью Speedment and Spring от нашего партнера по JCG Эмиля Форслунда из блога Age of Java . |