# Spring für Anfänger



## sign (27. Jul 2010)

Hallo,

kennt jemand ein Spring- Tutorial für absolute Anfänger. Bitte in deutsch. Würd gern eine kleine Web- Anwendung mit Spring erstellen.

Danke.
lg


----------



## maki (27. Jul 2010)

Worin bist du denn Anfänger?
Dependency Injection, Dependency Injection mit Spring, oder WebApps?

Java WebApp sind imho absolut ungeeignet für Anfänger, da geht die Enterprise los..

Ansonsten empfehle ich immer die originale & aktuelle  Spring Doku zum Einstieg in Spring, English musst du verstehen, so oder so.


----------



## Final_Striker (27. Jul 2010)

Kann dir das Buch hier empfehlen. Bin es derzeit am Lesen und finde es sehr gut. Der große Vorteil an dem Buch ist, das sich die Beispiele (Codestücke) alle auf eine kleine Web-Anwendung (Online Pizza-Bestell Service  ) beziehen, die man dann quasi selbst nach programmieren kann.

Spring und Hibernate


----------



## ARadauer (27. Jul 2010)

Das Buch kann ich auch empfehlen...

Muss aber sagen das die Thematik eigentlich nix für Anfänger ist, da würd ich eher zu php raten...


----------



## Niki (27. Jul 2010)

ich fand das Spring MVC Tutorial sehr gut erklärt und man kann dann nachher noch ein wenig selber herum basteln.


----------



## sign (27. Jul 2010)

Anfänger: Hab noch nix mit Spring gemacht. Bereite mich gerade auf die scjp 6 vor. Da möchte ich ende des Jahres die Prüfung schreiben. Hatte diesbezüglich auch eine Schulung. Kenn mich mit html/css und perl aus. Ansonsten arbeite ich auch viel mit vb.net.

wo kann ich das Spring MVC Tutorial finden??


----------



## sign (27. Jul 2010)

Bezüglich des genannten Buches Spring und Hibernate: Hab mir das Buch Java Persistence mit Hibernate gekauft und angefangen zu lesen. Leider ist es sehr trocken und Spring kommt da wohl erst zum Schluss vor. Mein Ziel ist es erstmal kleine Web- Anwendungen zu schreiben die keine dicken Datenbank- Anbindungen benötigen.

Spring MVC Tutorial hab ich gefunden. Leider nur in englisch...


----------



## Niki (27. Jul 2010)

englisch sollte kein kriterium sein es nicht zu lesen. du wirst immer wieder auf englische fachliteratur stoßen, da kommst du nicht drum rum


----------



## sign (27. Jul 2010)

schon, aber wenn es um was neues geht ist es mir lieber in deutsch.


----------



## Kai Wähner (18. Aug 2010)

Hm, für die Einarbeitung in Spring ist meiner Meinung nach das Buch "Spring in Action" sehr gut geeignet. Es bietet eine sehr gute und wirklich einfach verständliche Einführung in Spring. Das habe ich damals auch durchgearbeitet, ohne Vorkenntnisse von Spring.

Und das beste für dich: Das Buch gibt es auch auf Deutsch: "Spring im Einsatz".


----------



## mvitz (18. Aug 2010)

Dabei ist aber zu beachten, dass die deutsche Version Spring 2.0 behandelt, mittlerweile gab es mit 2.5 und jetzt aktuell 3.0 bereits zwei Releases die stark anders sind/waren.


----------



## maki (18. Aug 2010)

IMHO kannst du ohne Englisch das ganze Thema SW Entwicklung eigentlich schon vergessen.
Die gute Nachricht ist, dass es sich um kein richtiges Englisch handelt, ist imho leichter zu erlernen als das "richtige", da weder Grammatik noch Aussprache eine große Rololle spielen, wichtig sind die Vokabeln (vor allem die technischen), die lernt man aber schnell.


----------



## aze (18. Aug 2010)

Das Open Book "Spring für Grünschnäbel" ist auch nicht schlecht :

http://www.google.de/url?sa=t&sourc...65dn8opEZqGV0KhdQ&sig2=-AY97SdPL93fYCFfPicg-Q


----------



## Kai Wähner (19. Aug 2010)

> Dabei ist aber zu beachten, dass die deutsche Version Spring 2.0 behandelt, mittlerweile gab es mit 2.5 und jetzt aktuell 3.0 bereits zwei Releases die stark anders sind/waren.



Richtig, das hatte ich noch vergessen zu erwähnen.

Allerdings sind Themen wie Dependency Injection in dem Buch so einfach verständlich beschrieben, dass ich trotzdem damit anfangen würde. Ich hatte vorher einige andere Quellen für DI, da hatte ich es nie wirklich verstanden :-(

Und sind 2.5 und 3.0 wirklich so stark anders, was die Grundlagen betrifft? Also neben DI solche Dinge wie die Bean-Konfiguration durch XML oder eben die APIs zur Erleichterung bei der Entwicklung (SpringJDBC etc.)?
Im Gegensatz zu JEE hätte ich jetzt gesagt, dass bei Spring eher mehr neue Funktionalität hinzugekommen ist, sich das Programmiermodell aber kaum verändert hat?


----------



## JanHH (22. Aug 2010)

Ich muss ja sagen, immer wenn ich versuche irgendwo einen kurzen Einblick in Spring zu bekommen, finde ich es ziemlich unzugänglich und unattraktiv. Kann es nicht doch sein, dass spring durch seam/jee6 so langsam ein wenig veraltet ist?


----------



## mvitz (22. Aug 2010)

@Kai: Naja, also zumindest die neuen Dinge, die in 3.0 hinzugekommen sind (insbesondere Annotationen fürs WebMVC) sind schon stark anders. Die anderen Annotationen (@Service, @Repository, @Transactional) sind afaik erst in 2.5 hinzugekommen und machen das ganze schon nochmal stark einfacher. Außerdem ist die AspectJ Unterstützung in 2.5 auch afaik anders als in 2.0.

@JanHH: Abgesehen davon, dass du glaube ich fast immer bei solchen Threads diese Frage in der ein oder anderen Form stellst, frage ich mich, was dein Beitrag jetzt mit dem Thread gemein hat.
Um auf deine Frage jetzt doch noch einzugehen: Nein Spring wird mit Sicherheit nicht komplett durch JavaEE6/Seam2 abgelöst werden. Spring bietet nach wie vor noch einige zusätzliche Dinge, wie die Templates für vereinfachtes JMS, etc. und ansonsten gibt es mit Sicherheit auch heute noch Projekte, die mit Spring begonnen werden.


----------



## JanHH (23. Aug 2010)

Ja das das nicht so recht was mit dem Thema zu tun hat, ist mir schon klar..  aber Du hast mich auch falsch verstanden. Dass Spring nicht verschwinden wird und auch noch neue Projekte damit begonnen werde, ist mir auch klar. Mir scheint z.B. ein Vorteil zu sein, dass man nicht immer gleich die ganze "Schwergewichtige" JEE-Umgebung samt Application Server und EJB-Container braucht, sondern spring relativ leichtgewichtig ist und auch mit einem simplen tomcat läuft (oder?). Deshalb versuch ich ja auch ab und an, mal einen Blick drauf zu werfen. Aber ich bin dann immer wieder überrascht, wie kompliziert mir das doch, vergleichsweise, zu sein scheint.. dieser ganze xml-Konfigurationskram..


----------



## mvitz (23. Aug 2010)

Da gebe ich dir recht, wobei der XML Konfigurationskram mittlerweile schon weniger geworden ist, durch Annotationen bzw. man kann auch JavaConfig nehmen, dann sieht das afaik ähnlich wie bei Guice aus.
Der Vorteil mit dem Tomcat wird eher kleiner, da man mittlerweile ja auch so etwas wie OpenEJB recht einfach in einen Tomcat einbinden kann. Spring als gesamtes ist halt noch mächtiger als EJB3, alleine schon, der AOP-Support, der viel mächtiger ist, als die Interceptoren von EJB3, sowie die ganzen Templates, die vieles vereinfachen.

Edit: Was man letztendlich einsetzt ist meiner Meinung nach vor allem eine Frage der Erfahrung im Team, des persönlichen Geschmackes bzw. Firmenpolitik. Auch wenn die eine oder andere technische Anforderung hier auch den Ausschlag geben kann.


----------



## Kai Wähner (23. Aug 2010)

> Naja, also zumindest die neuen Dinge, die in 3.0 hinzugekommen sind (insbesondere Annotationen fürs WebMVC) sind schon stark anders. Die anderen Annotationen (@Service, @Repository, @Transactional) sind afaik  erst in 2.5 hinzugekommen und machen das ganze schon nochmal stark einfacher. Außerdem ist die AspectJ Unterstützung in 2.5 auch afaik anders als in 2.0.



Absolut richtig! Dennoch finde ich, dass die wirklichen Basisc (Dependency Injection, Spring Container, Beans...) absolut super in diesem Buch erläutert werden - im Gegensatz zu einigen anderen Büchern, die über "probiert" habe...



> Der Vorteil mit dem Tomcat wird eher kleiner, da man mittlerweile ja auch so etwas wie OpenEJB recht einfach in einen Tomcat einbinden kann. Spring  als gesamtes ist halt noch mächtiger als EJB3, alleine schon, der AOP-Support, der viel mächtiger ist, als die Interceptoren von EJB3, sowie die ganzen Templates, die vieles vereinfachen.



Ein weiterer Grund ist sicherlich auch das Web Profile von JEE 6, welches endlich leichtgewichtige Application Server ermöglicht.
Bezüglich Mächtigkeit sehe ich das genauso - wenn man z.B. AOP braucht, dann ist Spring sicher eine gute Wahl. Allerdings finde ich, dass eben viele der mächtigen Features einfach oft nicht benötigt werden. Man sollte daher also immer abwägen, man diese Features auch wirklich einsetzen wird. Das vergessen viele Leute oft gerne 



> Was man letztendlich einsetzt ist meiner Meinung nach vor allem eine Frage der Erfahrung im Team, des persönlichen Geschmackes bzw. Firmenpolitik. Auch wenn die eine oder andere technische Anforderung hier auch den Ausschlag geben kann.



100% agree !!!

Ich persönlich würde im Zweifelsfalls übrigens (seit Version 5) JEE vorziehen - aber das ist eben (auch) Geschmackssache...


----------



## maki (23. Aug 2010)

Man sollte nicht vergessen, das Spring sehr gut mit JEE kooperiert und schon seit eh und je viele von dessen Lücken füllt, zB. was automatische Tests usw. betrifft.

Die Ansicht "Spring oder JEE" zeugt imho eher von Unkenntnis oder gar einer Marketing Agenda...


----------



## Kai Wähner (23. Aug 2010)

> Die Ansicht "Spring oder JEE" zeugt imho eher von Unkenntnis oder gar einer Marketing Agenda...



Natürlich kann man sie auch kombinieren. Wir haben beispielsweise mal in einem Projekt mit WebSphere AS und EJBs zusätzlich SpringJDBC und ähnliche Templates eingesetzt. Mir persönlich gefällt die Art mit Spring zu programmieren trotzdem einfach nicht so gut.

Naja, bei einer Marketing-Agenda würde man sich ja dann wohl eher auf eines von beiden festlegen ?!


----------



## maki (23. Aug 2010)

> Naja, bei einer Marketing-Agenda würde man sich ja dann wohl eher auf eines von beiden festlegen ?!


Richtig, andere "Produkte" als die eigenen werden verteufelt bzw. als unzulänglich etc. abgestempelt.

Wenn man das alles aber aus einer technischen Sperpektive sieht, findet man mehr als genug Gründe beides zu kombinieren, wenn es denn zum Problem passt.


----------

