Spring MVC: Hello World Tutorial
Der Einstieg in neue Frameworks wie das Spring Framework ist meist am schwierigsten. Am hilfreichsten sind daher immer wieder “Hello World” Tutorials. Aufgrund dessen möchte ich genau mit diesem einfach Hello World Tutorial heute den Einstieg in das Spring MVC Konzept erleichtern. Ich werde zeigen, was konkret alles benötigt wird und wie im Detail vorgegangen werden muss, um das erste kleine Erfolgserlebnis hervorzurufen. Hierzu werde ich zwei unterschiedliche Wege für die erste Spring MVC Anwendung vorstellen.
Spring Vorbereitungen
Für die Umsetzung des Hello World Tutorials wird zunächst eine Entwicklungsumgebung benötigt. Wer bereits einige Artikel auf itblogging.de gelesen hat, weiß, das ich die Eclipse Umgebung bevorzuge. Für die Softwareentwicklung mit Spring bietet SpringSource sogar eine angepasste Spring IDE, die SpringSource Tool Suite (Spring STS). Die Spring STS basiert auf Eclipse, beinhaltet jedoch einige spezielle Anpassungen für die Entwicklung mit Spring die die Entwicklung erleichtern. Die Spring STS wird jedoch nicht zwingend für das Arbeiten mit Spring benötigt. Optional kann auch die Eclipse IDE ohne weiteres mit den im Eclipse Marketplace befindlichen Tools / Bibliotheken erweitert werden.
Download SpringSource Tool Suite
Wer sich die SpringSource Tool Suite mal anschauen möchte, für den steht auf SpringSource stets die aktuellste Version bereit.
Download SpringSource Tool Suite
Download SpringSource Tool Suite über Eclipse Marketplace
Wie zuvor bereits kurz angesprochen, ist der Download der SpringSource Tool Suite und die damit verbundene Integration in die Eclipse IDE eine weitere Möglichkeit mit den Spring Tools zu arbeiten. Die Suche im Eclipse Marketplace nach “spring” listet die Möglichkeiten der Installation auf. Für Eclipse 3.7 muss entsprechend SpringSource Tool Suite for Eclipse Indigo (3.7) heruntergeladen und installiert werden.

Bedingt der langen Downloadzeit über den Eclipse Marketplace würde ich den Download der SpringSource Tool Suite über die direkte SpringSource Website bevorzugen.
Download Spring Framework
Im nächsten Schritt muss das Spring Framework noch über die SpringSource Website heruntergeladen werden. In dem heruntergeladenen ZIP File befinden sich alle notwendigen JAR Dateien für die Entwicklung mit Spring. Die darin enthaltenen Libraries müssen anschließend dem Build Path hinzugefügt werden müssen.
http://www.springsource.org/download
Hello World – Spring MVC
Noch ein kleiner Hinweis: Für die Spring Entwicklung aber der Version 3.0 wird mindestens Java in der Version 1.5 benötigt. Die aktuellste Version ist sowohl unter Linux als auch in der Windows Kommandozeile
java -version
abzurufen.
Die aktuellste Java Version gibt es auf der Oracle Java Downloadseite.
Download Tomcat
In diesem Beispiel wird die Umsetzung des Spring MVC mit dem Apache Tomcat 7 durchgeführt.
Servlets und Java Server Pages
Wie ein Tomcat Server eingerichtet wird und grundsätzliche eine Webanwendung mit Servlets und JSP’s aufgebaut ist, erfahrt ihr in dem Tutorial Servlets und Java Server Pages.
Der Vollständigkeitshalber möchte ich beide Varianten zur Erstellung des Spring MVC Einstiegs veranschaulichen. Über die normale Eclipse Umgebung (ohne Spring Plugin) sowie die vereinfachte Variante mit Hilfe eines Spring Template Projects mit Spring STS.
Spring MVC über Eclipse EE
Im ersten Schritt wird ein Dynamic Web Project angelegt. Wie dies im einzelnen geschieht, zeigt das Servlets und Java Server Pages Tutorial. Das Projekt trägt den Namen HelloWorldSpring.
Angelegt, sollte in Eclipse das Web Projekt nun wie folgt aussehen (Navigator View):
Notwendige Bibliotheken
Im nächsten Schritt müssen folgende JAR Dateien in das lib Verzeichnis (WebContent => WEB-INF => lib) kopiert werden.

All diese Dateien habe ich zu einer ZIP Datei zusammengefasst und stelle sie hier zum Download bereit.
web.xml
Falls noch nicht vorhanden, muss die web.xml in dem Ordner WebContent => WEB-INF erstellt und wie folgt angepasst werden. Bitte die Hinweise den Kommentaren entnehmen.
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>HelloWorldSpring</display-name> <welcome-file-list> <!-- Die Willkommensseite (muss direkt in dem Ordner 'WebContent' liegen) --> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <servlet> <!-- Registrierung des Spring DispatcherServlet --> <servlet-name>helloworld</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- Die Registrierung bereits während des Startvorgangs laden --> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>helloworld</servlet-name> <!-- Alle Anfragen ( / ) über das helloworld Servlet bearbeiten --> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
helloworld-servlet.xml
In der web.xml haben wir dem Servlet den Namen “helloworld” gegeben. Das DispatcherServlet sucht in dem WEB-INF Ordner -falls der Pfad nicht extra angegeben wird- immer nach einer Datei mit dem Namen [servletname]-servlet.xml. In dieser Datei werden weitere Einstellungen für Spring vorgenommen. Zunächst muss also die Datei helloworld-servlet.xml in dem WEB-INF Ordner angelegt und mit folgendem Code gefüllt werden.
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> <!-- Spring sucht in dem angegebenen Package nach Controllern --> <context:component-scan base-package="de.itblogging.spring.helloworld" /> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" /> <!-- Die Views müssen alle in dem 'views' Ordner liegen ... --> <property name="prefix" value="/WEB-INF/views/" /> <!-- ... und mit .jsp enden --> <property name="suffix" value=".jsp" /> </bean> </beans>
HelloWorldController.java
In dem component-scan tag in der helloworld-servlet.xml Datei wurde ein Pfad angegeben. Dies ist der Pfad, an dem Spring automatisch nach Controller Klassen sucht, in diesem Fall de.itblogging.spring.helloworld.

package de.itblogging.spring.helloworld;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class HelloWorldController
{
@RequestMapping("/helloWorld")
public ModelAndView helloWorld()
{
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("helloWorld");
String message = "Geschafft! Ich bin dein erstes Spring MVC Erfolgserlebnis! : - ) ";
modelAndView.addObject("message", message);
return modelAndView;
}
}
index.jsp
Ebenfalls wird in der web.xml als Startseite auf eine index.jsp verwiesen. Diese muss in dem Ordner WebContent liegen. Die index.jsp könnte wie folgt aussehen:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>itblogging.de - Spring Tutorial</title>
</head>
<body>
<h2>Spring MVC - Hello World Tutorial</h2>
Jetzt geht es los. Wir rufen den <a href="helloWorld">HelloWorldController</a> auf.
</body>
</html>
helloWorld.jsp
Zu guter Letzt wird noch die View benötigt, die die Mitteilung des Spring Controllers ausgibt. Hierzu wird eine Datei helloWorld.jsp in dem Ordner WEB-INF => views angelegt.
Mit ${message} wird der zuvor in das Model geschriebene Parameter ausgelesen und in der View eingesetzt.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>itblogging.de - Spring Tutorial</title>
</head>
<body>
<h2>Ich wurde von einem Controller aufgerufen</h2>
Der Controller hat mir folgende Nachricht mitgeteilt:
${message}
</body>
</html>
Tomcat starten
Zu guter Letzt muss lediglich der Tomcat Server gestartet werden.

Ist der Tomcat Server einmal gestartet, kann unter http://localhost:8080/HelloWorldSpring/ die Webanwendung aufgerufen werden. Der Inhalt der index.jsp begrüßt uns und das Tutorial ist somit erfolgreich abgeschlossen worden.

Spring MVC über Spring STS
Nachdem die Spring MVC Einführung in der Eclipse IDE (dies würde so natürlich auch in der Spring STS klappen) durchgeführt wurde, möchte ich an dieser Stelle noch den einfachen schnellen Weg über die Spring STS vorstellen.
Die Spring STS liefert für den schnellen Einstieg in das Spring Framework einige Template Projekte mit. So auch für Spring MVC.
Spring Template Project anlegen
In dem Spring STS Menü wird unter New => Other => SpringSource Tool Suite => Spring Template Project ein neues Template Projekt angelegt.
Anschließend muss das Spring MVC Project ausgewählt werden.

Bei der ersten Verwendung des Spring MVC Projects fragt die Spring STS, ob sie die notwendigen Dateien herunterladen darf. Um fortzufahren, muss dies mit YES bestätigt werden.
Im nächsten Schritt wird der Name sowie die Projekthierarchie angegeben. Die Namensgebung wird analog zu der ersten Variante des Spring MVC vergeben.

Mit Finish wird von der Spring STS ein neues Projekt angelegt. Das Hinzufügen von JAR Dateien oder das Anlegen des Controllers, der Views oder die Servlet Einstellungen wurde bereits von der Spring STS übernommen.
Tomcat starten
Nachdem die Anwendung über den Tomcat Server gestartet wurde, kann ebenfalls unter http://localhost:8080/HelloWorldSpring/ die Webanwendung abgerufen werden. Ein kleiner Text mit der aktuellen Uhrzeit wird ausgegeben.
Weitere Informationen
Da Spring MVC weitaus komplizierter werden kann als es in diesem Hello World Tutorial gezeigt wurde, möchte ich für viele weitere Informationen die offizielle Spring Dokumentation empfehlen:
Web MVC framework






Hallo,
danke für dieses Tutorial. Hat mir bei meinem Verständnis von Spring weitergeholfen.
Allerdings funktionierte es bei mir nur mit ‘spring-beans-2.5.xsd’ und ‘spring-context-2.5.xsd’ in der helloworld-servlet.xml; die oben beschriebene Angabe ’3.0′ führte zu einem Ausführungsfehler.
Viele Grüße,
Jochen R. Meyer
bitte noch mehr tutorials über dieses thema, danke
Hi,
ich habe echt gefühlte zwanzig Tutorials durcharbeiten müssen, bis eines davon (dieses) geklappt hat.
Ganz herzlichen Dank dafür
Ich glaube deine Zip-Datei mit den Resourcen war genau der Punkt meines Scheiterns.
Mich würde interessieren woher du die ganzen Dateien hast.
Ich habe zwar immer schön fleißig die ganzen Sachen runtergeladen, aber trotzdem hat es nicht funktioniert. Die Jars scheinen nur schon etwas älter zu sein, daher würde ich diese gerne in einer neueren Version runterladen.
LG
Hallo Christian,
die JAR’s enthälst du auf den jeweiligen Projektseiten. Einige sind beispielsweise Teil von den Apache Projekten. Die springspezifischen JAR’s findest du natürlich auf der Spring Downloadseite.
Solltest du die STS nutzen sind die meisten JAR’s bereits im Download enthalten.