Tool Time

Neuerungen in der Spring Tool Suite 3.4.0

Martin Lippert
©Shutterstock.com/rui vale sousa

Zwei der vielbeachteten Neuerungen im Spring-Universum sind Spring Boot und die neuen und umfangreichen Getting-Started-Guides auf der neuen Webpräsenz unter http://spring.io/. Beide werden in der neuen Version der Spring Tool Suite direkt in die IDE integriert. Wir zeigen, wie.

Anfang September 2013, während der SpringOne 2GX in Santa Clara, erblickte die neue Plattform des Spring-Ökosystems das Licht der Welt (JAXenter berichtete). Ab sofort soll es orchestrierte Releases der Foundation geben, in denen Versionskompatibilität der unterschiedlichen Module sichergestellt werden. Das ist sinnvoll, schließlich beheimatet das Spring-Ökosystem eine Fülle von Modulen, und es kommen stetig neue hinzu. Einen Überblick über das neue Spring IO hat Oliver Gierke bereits in der Ausgabe 1.14 des Java Magazins gegeben.
Pünktlich zur Vorstellung einiger Neuerungen rund um Spring und der neuen http://spring.io/-Webpräsenz ist auch eine neue Version der Spring Tool Suite erschienen. Neben einer Reihe von Verbesserungen unter der Haube (der Sprung auf Eclipse Kepler SR1, weiter verbesserte Performance, und einiges mehr) und einem neuen, experimentellen Dashboard unterstützt die neue Version 3.4.0 auch zwei prominente Spring-Neuerungen: Spring Boot und die neuen Getting-Started-Guides auf http://spring.io/. Entwickler können somit diese Neuheiten direkt aus ihrer IDE heraus verwenden.

Spring Boot

Spring Boot zeichnet sich dadurch aus, dass man mit wenig Code und wenig Aufwand schnell und einfach eine komplette Anwendung zusammensetzen und laufen lassen kann. Ein Deployment beispielsweise in einen Web- oder Application-Server ist nicht mehr notwendig, die Anwendung kann direkt gestartet werden. Eine aufwändige Konfiguration der Anwendung entfällt ebenfalls, entsprechende Spring-Annotationen übernehmen diese Aufgabe. Da wir uns hier auf die Integration in die IDE fokussieren, sei für weitere Details zu Spring Boot auf den ausführlichen Artikel von Eberhard Wolff in dieser Ausgabe sowie auf diesen Blogpost verwiesen.
Spring Boot lässt sich mit der neuen Version der Spring Tool Suite direkt aus der IDE heraus verwenden. Über einen neuen Wizard (NEW | SPRING STARTER PROJECT) lassen sich neue Spring-Boot-Projekte einfach und schnell erzeugen (Abb. 1).

Abb. 1: Mit dem neuen Wizard lassen sich Spring-Boot-Projekte schnell und einfach erzeugen

Über den Spring-Starter-Wizard kann man dem neuen Projekt einen Namen geben und die Basiskonfiguration zusammenklicken, aus der das Projekt bestehen soll (beispielsweise eine Basiswebanwendung mit JPA). Als Ergebnis importiert der Wizard ein fertiges Spring-Boot-Projekt in den Workspace.
Im Hintergrund nutzt der Wizard den Spring-Starter-Onlineservice, der über ein RESTful-API ein fertig nutzbares Spring-Boot-Projekt erzeugt und als Download zurückliefert. Der genaue URL dieses Service wird auf der zweiten Seite des Wizards angezeigt und kann natürlich auch ohne die Spring Tool Suite verwendet werden.
Über diesen Service werden auch die auswählbaren Basiskonfigurationen dynamisch ermittelt, sodass neue Konfigurationen automatisch im Wizard zur Auswahl gestellt werden, ohne dass man dazu auf eine neue Version der IDE warten müsste.
Das anschließend in den Workspace importierte Projekt kann direkt gestartet werden. Es besitzt eine Main-Klasse Application. Diese Klasse kann als Java-Anwendung gestartet werden. Die Anwendung besitzt zwar noch keine wirkliche Funktionalität, aber der genutzte eingebettete Container (Tomcat) wird bei einem Start der Anwendung schon einmal gestartet.

Support für Java Config

Der von der Spring Tool Suite gewohnte Support für Spring-Projekte wird für Spring-Boot-Projekte automatisch aktiviert und in der IDE konfiguriert. Dazu wird der neue Support für Java-Config-basierte Spring-Projekte verwendet, der sich auch für normale Projekte nutzen lässt, die ausschließlich auf Basis von Annotationen die Anwendung konfigurieren.
Ergänzt man beispielsweise die erzeugte Anwendung um eine Controller-Klasse, die einen RESTful Service implementiert, erkennt die IDE dies automatisch und zeigt das entsprechende Mapping direkt im Spring-Explorer als RequestMapping an (Abb. 2).

Abb. 2: Der Java-Config-Support in Aktion, RequestMapping-annotierte Controller werden von der IDE erkannt und entsprechend angezeigt

Änderungen an dem Projekt können wie gewohnt in der IDE implementiert werden. Möchte man zusätzliche Spring Frameworks in den Classpath aufnehmen (und somit automatisch von Spring Boot konfigurieren lassen), kann man diese einfach zu dem pom.xml-File (über den entsprechenden Editor) hinzufügen. Das ist zwar relativ einfach, trotzdem muss man wissen, wie das entsprechende Modul heißt. Dieser Schritt soll in einer zukünftigen Version der Tool Suite vereinfacht werden.

Easy Restart

Da aktuell Änderungen vom Sourcecode nicht automatisiert in eine laufende Anwendung übertragen werden, muss eine Spring-Boot-Anwendung neu gestartet werden, nachdem Code geändert wurde. Um dies in der IDE möglichst einfach und unkompliziert zu erlauben, gibt es in der Spring Tool Suite neue Convenience-Buttons, um laufende Anwendungen zu stoppen oder zu stoppen und automatisch neu zu starten. Damit erübrigt sich die Suche nach dem passenden Console-View, das manuelle Stoppen der Anwendung dort und der anschließende Neustart über das Startmenü. Eine kleine, aber in der Praxis sehr nützliche Ergänzung.

Aufmacherbild: Computer engineer working in a motherboard, isolated von Shutterstock / Urheberrecht: rui vale sousa

[ header = Seite 2: Getting Started Guides ]

Getting Started Guides

Die neue http://spring.io/-Webseite bietet eine Vielzahl von komplett neu erstellten und Task-orientierten Getting Started Guides (siehe auch [3]). Jeder dieser Guides fokussiert sich dabei auf ein spezielles Thema und erläutert in wenigen Schritten, wie Spring innerhalb der entsprechenden Aufgabe eingesetzt werden kann (beispielsweise, wie man mit Spring RESTful Services implementieren kann). Der Sourcecode zu den einzelnen Guides befindet sich ein einem entsprechenden Repository auf GitHub.
Mit der Version 3.4.0 bietet die Spring Tool Suite einen neuen Wizard, der den direkten Import dieser Getting Started Guides erlaubt. Dazu bietet der Wizard eine Auswahl der verfügbaren Guides an (Abb. 3).

Abb. 3: Die Getting Started Guides kann man direkt in der IDE auswählen

Die Auswahl ist dabei nicht fest in die Spring Tool Suite kodiert, sondern wird dynamisch anhand der verfügbaren Guides auf GitHub zusammengestellt. Auch die erzeugten Projekte im Workspace werden direkt aus dem auf GitHub verfügbaren Projekt heraus erzeugt, sodass Bugfixes und Verbesserungen sofort in der IDE nutzbar sind und man nicht auf eine neue Version der Spring Tool Suite warten muss.
Bei der Auswahl der Guides im Getting Started Guides Wizard kann man darüber hinaus entscheiden, ob man zwei Versionen des Projekts importieren möchte: Das Projekt in einem Anfangszustand und in einem Endzustand. Möchte man beispielsweise die Anleitung Schritt für Schritt durchgehen und nachvollziehen, bietet es sich an, über den Wizard nur den Anfangszustand zu importieren und die nächsten Schritte anhand der Anleitung auf der Webseite des Guides selbst zu implementieren. Dazu öffnet der Wizard auf Wunsch die entsprechende Webseite automatisch innerhalb der IDE. So kann man der Anleitung des Getting Started Guides direkt in der IDE folgen (Abb. 4).

Abb. 4: Die Webseite des passenden Guides wird automatisch angezeigt

Möchte man hingegen nur das Endresultat betrachten und ggf. weiterverwenden, kann der Wizard auch den Endzustand des Guides direkt importieren – oder beides, falls man nach erfolgreicher Schritt-für-Schritt-Implementierung das eigene Ergebnis mit dem „offiziellen“ Ergebnis vergleichen möchte.

Fazit

Die neue Version der Spring Tool Suite bietet eine leichtgewichtige und direkte Integration, mit der sich sowohl Spring-Boot-Projekte als auch die neuen Getting Started Guides direkt aus der IDE heraus importieren lassen. Eine kleine, aber nützliche Integration, die allerdings eine verfügbare Onlineverbindung voraussetzt und derzeit nicht offline genutzt werden kann. Es bleibt also die Frage, ob dies für den firmeninternen Einsatz ausreichend ist oder eine Offlinevariante notwendig wird. Das Feedback der Anwender wird es zeigen.

Geschrieben von
Martin Lippert
Martin Lippert
Martin Lippert ist Lead der Spring-Tool-Suite-Entwicklung und arbeitet bei Pivotal (im SpringSource-Team) mit einem internationalen Team an Entwicklungswerkzeugen rund um Spring- und Cloud-Techniken. Als Mitgründer der it-agile GmbH gilt er zudem als Spezialist für agile Softwareentwicklung.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: