Product Details
Spring in Action (In Action series)

Spring in Action (In Action series)
By Craig Walls, Ryan Breidenbach

List Price: $44.95
Price: $32.81 & eligible for FREE Super Saver Shipping on orders over $25. Details

Availability: Usually ships in 24 hours
Ships from and sold by Amazon.com

41 new or used available from $5.99

Average customer review:

Product Description

Written for enterprise Java developers who have become disillusioned with the complexity and bulk involved with EJB development, this programming tool demonstrates how the Spring framework can make coupled code easy to manage, understand, reuse, and unit-test. Spring's employment of inversion control and aspect-oriented programming techniques to encourage loosely coupled code is explained, providing programmers with the ability to use JavaBeans with the power and enterprise services only previously available in the heavier Enterprise JavaBeans.


Product Details

  • Amazon Sales Rank: #455232 in Books
  • Published on: 2004-12-01
  • Original language: English
  • Number of items: 1
  • Binding: Paperback
  • 472 pages

Editorial Reviews

Review
"Truly a great resource . . . a book that I highly recommend." -- Javalobby.org

About the Author
Craig Walls is a professional software developer and the author of XDoclet in Action. Ryan Breidenbach is a senior Java developer for a large retail company.


Customer Reviews

Spring into action with Spring in Action4
Information on the web about Spring can be found if you searched enough. The problem is that there was never any kind of clear guide and process by which you could either learn or make good use of the features in Spring.

I spent the better part of 2 hours last weekend at the bookstore reading through some chapters of Spring in Action and Spring PRO. I had already looked at Spring Live and was just too fond of it. Spring PRO turned out to be as dry a reading as the paper it's printed on. Sure it's got a lot of information, but geez, who needs that much, and who can read all of it when it's so hard to stay awake during the reading?

Spring Live offered something the other books didn't:
1- It's easy to read. The Authors, Craig Walls and Ryan Breidenbach, have a pretty good sense of humor, and has obviously put great effort in using good examples which everyone can understand. If you don't know how a student class registration works, you probably didn't go to school. I could have done without the Knight and singing what ever examples, but hey, they didn't hurt anything and got the message through.

2- The book flows in the natural way one would expect to work with Spring. I like the sequence of chapters, as Craig and Ryan layed them out. They start with a quick yet fairly thorough Spring startup, and run from there into wiring, AOP, dao and on down to complete the project. it just works and makes sense, and I don't feel like I'm left wondering about something. They always seem to get to what you need to know as you think about it.

While SiA didn't have the depth of Spring Pro, it still covered everything and then some, with accuracy with what you need to know. It's written from the standpoint, at least in my opinion, that you're a smart engineer, this is not your first time looking at Java or a framework, so they tell you what's going on, and let you figure out things further if you want to and when you need to. You're not plastered with a bazillion pages of details, leaving you skimming page after page for what you want to know. Spring Live just lacks in details, and seems more driven towards those who want to integrate Spring with other frameworks like Struts, and just seems a little too happy on self promoting the author's own tools.

I don't know what these stupid low rated reviews are talking about, it seems they were posted before the book was even published. Sad.

If you want to get going with Spring the right way, get this book and don't waste your money and time on anything else.

Hope this helps.
R

Excellent coverage and an easy read5
There's been a bit of a rush of books about the Spring Framework recently with a number of publishers releasing their own titles one after another. Without having read those other books, I feel confident in saying "Spring in Action" won't let you down. It's a wonderful introduction to the framework and a handy reference for those desperate moments with the Spring configuration files.

What I especially like about "Spring in Action" is the style of writing. The book is largely about how to configure this and that and still I read most of the book in one sitting. The text flows well and the humor sprinkled throughout adds a nice touch. The other good things about this book include a good coverage of the Spring Framework itself. Only some parts of the Acegi security framework have been left out, as far as I can tell, and those features (ACL's and run-as) are not what I'd call essential so it didn't bother me much. In addition, the authors give a good comparison (brief, but a good overview) of Spring and other technologies and frameworks such as EJB, Struts, WebWork, Tapestry, PicoContainer, HiveMind, etc. Furthermore, the authors show you how to integrate with these other frameworks (except for the other IoC containers) and view technologies like JSP, JSF, Velocity and FreeMarker. Add to that, the index looks very comprehensive which is an important detail for a book that one might use as a reference afterwards.

So, what separates this book from perfection? For one it had a lot of little typos, the text did exhibit a bit of repeat (didn't I just read this sentence on the previous page?) here and there, and I feel like mixing multiple ViewResolvers was covered too lightly. I don't consider these to be big issues, though, and I won't hesitate for a second in recommending "Spring in Action" for someone looking to get started with the framework.

Good style: grade B+, Execution: D-2
This is a tough review to write because I felt the authors made a good effort in the writing of the book and explanations of the Spring Framework. Writing a book is no small feat, and technical books are a special beast.

With that last statement in mind, this is were the book sadly falls short. For one, the source code available online is a significant rewrite of the books' code. The authors explain ( on the publisher site ) that this is because they learned better ways and techniques to implement the samlpe application after the book went to print.

While improvement is always good, this presents two problems. 1. The sample application is now out of sync with the material. Not a good thing for those trying to learn, as you require more effort to study in tandem with the book. Also, and this is not to disparage the authors skill, but I buy books because I am expecting experienced, if not expert advice. If a small, sample application needs rewriting, perhaps they should write about something else?

Further down this road, the sample application has errors that prevent it from compiling. I suspect that the final build file was not tested, or it was a case of "well, it compiles on my machine". There were several dependencies that required changes to the build file so it could be compiled. Thankfully, I use Eclipse and imported the project. Eclipse immediately informed me of missing dependencies, which I resolved by getting those jars on the build path and in the build file so they would be deployed in the war archive. Examples are:

jakarta-commons/collections, and several core Spring jars relating to DAO and database access.

For an experienced developer, familiar with ant and a good IDE, it was not a lot of trouble to get it running, it just did not give me a good impression.

Bonus info for anyone switching the database out to postgresql: First, no matter what DB you swap in, you'll need to change a few hard coded references in the build file. I made property variables which I placed in build.properties. Then you will need to change the class User to something else ( and of course anything in the app that references it. ). Another great reason to use Eclipse.

Why you must change it, is User is a reserved keyword in postgresql and you will get databases errors because you can't name a table User.