Быстрое прототипирование с использованием Spring Data Rest и Knockout.js. Настройка проекта. — TechCave

Оглавление Краткое описание: Учебное пособие, в котором показано, как быстро разработать REST api в Java с использованием Spring Data Rest, и интерфейсом на Javascript, использующим Knockout.js. Пора начинать.

Быстрое прототипирование с использованием Spring Data Rest и Knockout.js. Настройка проекта.

JAVA

Быстрое прототипирование с использованием Spring Data Rest и Knockout.js. Настройка проекта.

Оглавление

Краткое описание: Учебное пособие, в котором показано, как быстро разработать REST api в Java с использованием Spring Data Rest, и интерфейсом на Javascript, использующим Knockout.js.

Пора начинать. В этой статье я продемонстрирую, как создать веб-приложение на основе REST на Java с минимальными усилиями. Я буду использовать следующие фреймворки :

Я собираюсь разработать полное приложение с отдельным бэкэнд и интерфейсом. В качестве примера я решил создать простой сервис закладок. Поскольку я использую Intellij Idea и Mac, примеры ориентированы на них, но не должно быть слишком сложно приспособиться к любой другой среде IDE, например Eclipse.

Spring

Если вы новичок в Spring, веб-сайт Spring может быть немного пугающим в начале. В Spring есть два способа узнать о Spring: чтение проектной документации (я всегда рекомендую сделать это сначала, прежде чем отправиться дальше) или начать с руководства для начинающих.

  • http://spring.io/docs — это отправная точка для получения подробной документации о проекте Spring. Отсюда вы можете попасть на основной сайт проекта (включая руководство по установке и «быстрый старт») или перейти непосредственно к справочной документации или javadocs.
  • http://spring.io/guides собирает краткие руководства по широкому кругу вопросов. Посмотрите здесь, если вы хотите быстро попробовать функционал, я нахожу, что это руководство очень полезно для быстрого начала работы.

Если вы еще ничего не сделали с помощью Spring, я бы рекомендовал сначала взглянуть на основную документацию: http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/

Инструмент сборки: Springboot

Документация: http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#cli-init

Для быстрой сборки проекта я использую Spring Boot.

Установка: Я устанавливаю Spring Boot на моем Mac с помощью brew.

Со Spring Boot мы можем создать проект и указать, какие модули мы будем использовать. Чтобы получить общее представление о том, что доступно, запустите spring init --list.

Установка

Выполните:

$ spring init --build=gradle --java-version=1.8 --dependencies=data-rest,data-jpa spring-data-rest-knockout-bookmarks

Редактирование gradle.build

Перейдите в новый каталог и отредактируйте файл сборки Gradle:

$ edit gradle.build

Удаление плагинов и методов eclipse

Поскольку мы используем Intellij, мы можем удалить плагин eclipse.

Добавление базы данных H2

Нам понадобятся некоторые средства для сохранения наших данных. Для демонстрационных целей база данных H2 находящаяся в памяти просто прекрасна.

В зависимостях необходимо добавить compile(«com.h2database:h2»)

Примечание: Если вы хотите сохранить данные, вы можете использовать H2 в режиме на основе файлов. Я уже подготовил проект Github, просто удалите комментарии в src/main/resources/application.properties, и данные будут сохраняться между сеансами.

Опционально: включение отладки в Idea

Во время разработки я предпочитаю отлаживать в Idea. Добавьте следующие строки в файл сборки, чтобы включить:

applicationDefaultJvmArgs = [
    "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"
]

Опционально: включение горячей замены кода (hot code swapping)

Документация: http://docs.spring.io/spring-boot/docs/current/reference/html/howto-hotswapping.html#howto-reload-springloaded-gradle-and-intellij

Еще одна небольшая настройка, которая может пригодиться, — это горячая замена кода. Модуль springloaded может сделать это для нас.

Добавьте зависимость в buildscript:

buildscript {
    dependencies {
        ....
        classpath("org.springframework:springloaded:${springBootVersion}")
    }
}
idea {
    module {
        inheritOutputDirs = false
        outputDir = file("$buildDir/classes/main/")
    }
}

Готовый gradle.build

buildscript {
    ext {
        springBootVersion = '1.2.1.RELEASE'
    }
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
        classpath("org.springframework:springloaded:${springBootVersion}")
    }
}
apply plugin: 'java'
apply plugin: 'idea'
apply plugin: 'spring-boot' 
jar {
    baseName = 'demo'
    version = '0.0.1-SNAPSHOT'
}
sourceCompatibility = 1.8
targetCompatibility = 1.8
repositories {
    mavenCentral()
}
applicationDefaultJvmArgs = [  
    "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"  
]
idea {  
    module {  
        inheritOutputDirs = false  
        outputDir = file("$buildDir/classes/main/")  
    }
}
dependencies {
    compile("org.springframework.boot:spring-boot-starter-data-rest")
    compile("org.springframework.boot:spring-boot-starter-data-jpa")
    compile("com.h2database:h2")
    testCompile("org.springframework.boot:spring-boot-starter-test")
}
task wrapper(type: Wrapper) {
    gradleVersion = '1.12'
}

Создание проекта idea

Давайте создадим файлы Idea.

$ gradle idea

Открываем в idea

Последний шаг — это очистка. Удаляем автоматически созданные демо-файлы (DemoApplication.java и DemoApplicationTest.java).

Мы закончили работу над проектом. Давайте начнем создавать бэкэнд!

Оглавление

12:58
87

Нет комментариев. Ваш будет первым!

Авторизация

Пользователи

Dmitry Loginov
Dimas Potapov
Ваня Берёзкин
Володя Рудомаха
adanick
Марина Викторовна
Георгiй Москвитинъ
Andpyxa Tutunnik
Andrey_fox