18.07.2016
Spring Boot - Vaadin
Hier wird gezeigt, wie man Vaadin in eine Spring Boot Applikation integriert. Dies ist keine Einführung in Vaadin. Es soll nur an einem kleinen Beispiel beschrieben werden, wie einfach es ist das Vaadin-Framework in einer Spring Boot Applikation zu verwenden, um eine grafische Oberfläche für einen Microservice anzubieten.
Spring Boot Applikation erstellen
Los geht es auf der Seite start.spring.io. Wo Vaadin ausgewählt wird, um anschliessend das Projekt-Template mit Generate Project zu erstellen.
Das Template wird anschliessend in einer IDE geöffnet und die Klasse ItemUI
ergänzt.
package org.hameister; import com.vaadin.annotations.Theme; import com.vaadin.data.util.BeanContainer; import com.vaadin.data.util.BeanItemContainer; import com.vaadin.server.VaadinRequest; import com.vaadin.spring.annotation.SpringUI; import com.vaadin.ui.Component; import com.vaadin.ui.Table; import com.vaadin.ui.UI; import java.util.Arrays; import java.util.List; import java.util.Random; @SpringUI(path = "ui") @Theme("valo") public class ItemUI extends UI { @Override protected void init(VaadinRequest vaadinRequest) { Table table = new Table(); BeanItemContainer items = new BeanItemContainer<Item>(Item.class); Random r= new Random(); for (int i = 0 ; i<100;i++) { items.addBean(new Item((long)i, "Test "+Math.abs(r.nextInt()))); } table.setContainerDataSource(items); table.setSizeFull(); setContent(table); } public class Item { Long id; String name; public Item(Long id, String name) { this.id = id; this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } } }
Wichtig ist in der Klasse die Annotation @SpringUI
mit der festgelegt wird, unter welcher URL die grafische Oberfläche zu erreichen ist.
Mit der Annotation @Theme("valo")
wird das Aussehen beeinflusst. Bei valo
Händel es sich um das Standard-Theme. Wobei es möglich ist mit CSS/Sass ein eigenes Theme zu erstellen und zu verwenden.
Die Klasse ItemUI
implementiert die Methode init(VaadinRequest vaadinRequest)
der abstrakten Klasse UI
.
In der Methode wird ein Objekt vom Typ com.vaadin.ui.Table
erstellt und über einen BeanItemContainer
mit Objekten vom Typ Item
gefüllt.
Nach dem Start der Spring Boot Applikation sollte im Browser folgende Tabelle zu sehen sein, wenn man die URL http://localhost:8080/ui aufruft.