A few months ago I bought Rod Johnson's book, "J2EE Design and Development". It was full of good advice. I really like the way it uses principles from XP to balance orthodox J2EE advice. For example, this book was one of the first places I saw someone write that entity EJBs may not always be worth the effort.
However, it went into great detail on an example web application, without using any of the existing frameworks. It seemed perverse in a book that proclaimed its pragmatism to develop a new framework from first principles when it had been done before. My concentration lapsed several times while I waded through the source listings, wondering why I should care.
You could download the source code from the Wrox web site, but it was incomplete and not all that well packaged. It was also far from clear under what terms it could be used. Would I be liable for copyright infringement if I tried to use the code? If I found a bug what would I do? It all seemed hopeless at the time.
Now, the Spring Framework is available under an Apache license. At first glance, it is the same code as before, but with better packaging. A quick browse through the new examples shows that there has been a fair bit of development during the time since the book was published. There's also a new core developer, Juergen Hoeller. The announcement on TheServerSide also summarizes some of the improvements.
(It's too bad that the discussion thread on the announcement degenerated quickly into a checked versus unchecked exception flamewar. )
In retrospect, the book is in large part an extended design document, with background and annotiations. A good portion of the book is the rationale: why would anyone want to develop yet another framework. It planted a hunger in me for something better than Struts (the only Java framework I had used until that point).
Spring does not tie your business logic to the Servlet interface or force you to declare SQLException all over the place. If it's not exciting to read, that's because it takes care of the dull details.
Certainly, things will change, considering this product has not reached version 1.0 yet. There are other frameworks: WebWork seems to be a popular one. However, Spring looks well thought out and I would like to try it out on a project.
[ I have edited this piece since originally posting it and may do so again as I learn more.]