Spring Boot with Vaadin 〜その1〜

f:id:Naotsugu:20160113010339p:plain

結構むかしになりますが、Spring boot の Vaadin サポートが出来てきたので簡単なチュートリアル。


プロジェクトの作成

まずは最小限のサンプルを作成します。

gradle でプロジェクト作成。

$ mkdir example-springboot-vaadin
$ cd example-springboot-vaadin
$ gradle init --type java-library

build.gradle を以下のように編集。

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'org.springframework.boot:spring-boot-gradle-plugin:1.3.1.RELEASE'
    }
}

apply plugin: 'java'
apply plugin: 'idea'
apply plugin: 'spring-boot'

repositories {
    jcenter()
}

sourceCompatibility = 1.8
targetCompatibility = 1.8

dependencies {
    compile 'com.vaadin:vaadin-spring-boot-starter:1.0.0'
    testCompile 'org.springframework.boot:spring-boot-starter-test' 
}

spring-boot の gradle プラグイン使うため buildscript の定義が必要。

あとは、vaadin-spring-boot-starter を指定する程度。


Applicationクラス

Spring boot のエントリポイントとして Application クラス作成。

package hello;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Application {

    private static final Logger log = LoggerFactory.getLogger(Application.class);

    public static void main(String[] args) {
        SpringApplication.run(Application.class);
    }
}

@SpringBootApplication でアノテートしてあげます。


UIクラス

Vaadin 用の UIクラス作成。

package hello;

import com.vaadin.annotations.Theme;
import com.vaadin.server.VaadinRequest;
import com.vaadin.spring.annotation.SpringUI;
import com.vaadin.ui.Button;
import com.vaadin.ui.Notification;
import com.vaadin.ui.UI;

@SpringUI
@Theme("valo")
public class VaadinUI extends UI {

    @Override
    protected void init(VaadinRequest request) {
        setContent(new Button("Click me", 
            e -> Notification.show("Hello Spring with Vaadin!")));
    }
}

ボタンを作成し、クリックイベントにて Notification を表示するだけのサンプル。


ビルド & 実行

$ ./gradlew clean build

$ java -jar build/libs/pipe2.jar

組み込みのTomcatが起動するので、localhost:8080 でアクセス。

f:id:Naotsugu:20160113010459p:plain

ボタンのクリックで Notification が表示される。

f:id:Naotsugu:20160113010905p:plain

簡単ですね。


次回JPAとGridを。

blog1.mammb.com

Spring Boot Cookbook (English Edition)

Spring Boot Cookbook (English Edition)

  • 作者:Alex Antonov
  • 出版社/メーカー: Packt Publishing
  • 発売日: 2015/09/28
  • メディア: Kindle版

Vaadin 7 Cookbook (English Edition)

Vaadin 7 Cookbook (English Edition)