Мы используем много h2 с пружиной, особенно для юнит-тестов. Однако вместо модульных тестов нам может потребоваться полнофункциональный прототип с отображаемыми данными.
H2 является идеальным кандидатом для этого, он отлично работает с Spring, имеет хорошую синтаксическую совместимость с большинством баз данных, а также предоставляет вам интерфейс для проверки ваших данных.
Представьте себе сценарий интервью. Вы хотите, чтобы ваш пример работал «из коробки» с минимально возможной конфигурацией для рецензента. План состоит в том, чтобы приложение работало с некоторыми данными. Перед тем, как получить доступ к приложению, мы можем добавить в него некоторые данные. Тогда нам нужно правильно отобразить добавленные данные без добавления дополнительного кода.
Первым шагом является переход к весеннему инициализатору и добавление зависимостей Web и H2. Также добавим свойство jdbc.
Конечный результат даст файл build.gradle, подобный этому.
|
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
|
buildscript { ext { springBootVersion = '2.0.6.RELEASE' } repositories { mavenCentral() } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") }}apply plugin: 'java'apply plugin: 'eclipse'apply plugin: 'org.springframework.boot'apply plugin: 'io.spring.dependency-management'group = 'com.gkatzioura.springbooth2'version = '0.0.1-SNAPSHOT'sourceCompatibility = 1.8repositories { mavenCentral()}dependencies { implementation('org.springframework.boot:spring-boot-starter-jdbc') implementation('org.springframework.boot:spring-boot-starter-web') runtimeOnly('com.h2database:h2') testImplementation('org.springframework.boot:spring-boot-starter-test')} |
Поскольку мы добавили свойство jdbc, мы можем запустить несколько скриптов схемы после запуска приложения. Таким образом, нам нужно создать файл schema.sql, содержащий операторы sql, которые создают схему.
|
1
2
|
CREATE TABLE application_user (ID INT, USER_NAME VARCHAR(50), PASSWORD VARCHAR(255));INSERT INTO application_user (ID,USER_NAME, PASSWORD) values (1,'test','password-hash'); |
Следующим шагом является включение консоли h2. Мы будем использовать подход yaml, однако вы можете сделать это либо с помощью файла свойств, либо переменных среды.
|
1
2
3
4
|
spring: h2: console: enabled: true |
Теперь, когда мы запустили наше весеннее приложение, мы можем перемещаться по конечной точке http: // localhost: 8080 / h2-console .
Нам будут представлены необходимые учетные данные по умолчанию 
После того как мы вошли в систему, мы можем запросить пользователя, которого мы вставили в наш сценарий запуска sql.
Это оно! Это может творить чудеса с прототипами, заданиями для интервью и постами в блоге!
| Опубликовано на Java Code Geeks с разрешения Эммануила Гкациоураса, партнера нашей программы JCG. Смотрите оригинальную статью здесь: Полностью рабочие прототипы с Spring Boot и H2
Мнения, высказанные участниками Java Code Geeks, являются их собственными. |
