views:

131

answers:

4

Right now I have very basic Java skills (by basic I mean some basic JSP's that query databases and produce reports... not much more!

However I work in a very Java world, lots of web-facing J2EE apps running on various Appservers and have also a lot of contact with SpringSource via our heavy usage of Hyperic as a platform monitoring solution.

To the point, Spring framework seems to be impinging more and more on everything I do and the things I want to do in the future. But I have no idea where to start. Sure I could go to some SpringSource education but from what I have seen the courses would fly way over my head right now.

Can anyone suggest a route from zero -> spring certified (over the long term of course!)

EDIT: Let me clarify that I am in no rush! Sure I can delve into spring and start hacking, but I have done that with many languages before and ended up with a superficial skimming knowledge of what I was doing. I guess I feel its time to start from the ground up with a language I am enthusiastic about and get a deeper understanding of all the ground concepts and of J2EE development as whole, eventually leaning towards Spring and or Struts as frameworks. - Does that even make sense? :)

+3  A: 

Personally, I started by reading the documentation and playing with the examples. There is also books that you can read!

But the best way to learn Spring, or Java or anything actually is by working with experienced people that you can learn from.

Thierry-Dimitri Roy
I would love there to be some people I could learn from here at work, but right now there isn't - Thus why I also see good opportunity for me down the road if I can lead us down this path.
SeerUK
+4  A: 

I can recommend Pro Spring by Harrop & Machacek, I was given this book as part of an Interface21 training course, and is one of the most used reference books I've got - it deals with most of the Spring framework, although was written against an early version of Spring its still very relevant. There is also Expert Spring MVC & Web Flow by Ladd, Davison, Devijver & Yates which may be useful if you're looking to mainly develop web applications.

One thing to remember, Spring is designed to let you use as much, or as little of the features as you need, so I'd recommend doing a bit of reading into each particular piece of functionality you come across.

Jon Freedman
+1 for "Spring is designed to let you use as much, or as little of the features as you need" - exactly right. Great comment, great recommendation.
duffymo
thanks for the references I will check them out... but still feels like I need a better understanding of java, j2ee and related concepts before I can really dig into spring
SeerUK
Hi Jon, I am going to give you the answer as I researched the recommended book and it looks like something I can start working from. If I hit a chapter or concept that I don't understand, then I know what training course to book :)
SeerUK
A: 

Ufortunally there is no good book about spring 3.0 (at last i havent seen any). If you are going to hit some books, make sure that its spring 2.5 or higher. Many things changed, specially in MVC, and as I understand yuo are going to develop some web applications. Of course there is full documentation on springsource but it may be sometimes to difficult for new users of spring. Nevertheless spring is a great choice :] hope you will like it.

Marek
+1  A: 

As with many frameworks, Spring is best learnt by understanding how a typical spring application is structured.

More fundamentally, I think you should start to understand design. I am going to use a few highlighted terms below that you might want to use as "google search" terms to obtain more information.

IMO, object oriented design starts with understanding the Single Responsibility Principle. You need to know how the Strategy pattern works and how objects depend on each other. Then you need to figure out how object dependency chains are typically created using the factory pattern.

Then you understand how Inversion of control (or Dependency Injection) mitigates the complexities of the factory pattern by injecting dependencies into objects. The stage is then set for you to then understand how a framework such as Spring functions.

Here is a deck I had put together sometime ago that explains the patterns behind spring.

raja kolluru
Thanks for the terms and the presentation. I would say I barely understood 20% of the presentation, so that gives a good idea of my current abilities :)
SeerUK
The presentation requires a little bit of context I guess. But thanks for reading the material.
raja kolluru