Book Review - Spring in Practice
Buy it now
One Minute Bottom Line
|This book does a good job of covering many aspects of the Spring Framework and is a solid resource for learning one of the many components available. It provides enough detail to get a good understanding of what's available and how to use it right away.|
The authors are targeting developers using the Spring Framework who want to learn more about certain topics, developers who want to catch up with some of the new features in Spring 3, or developers just getting started with Spring. Personally, I fall into the second category. I've been writing software for a little over 6 years using languages such as Java, Python, .NET and Flex. With each of my experiences I've made use of numerous frameworks and libraries including Spring .NET, but most notably the Spring Framework for Java.
As a developer I have read many technical books, many of which left me feeling like I wanted something else. Typically, I found those books ended up being either very introductory or overly detailed, essentially acting as reference manuals printed on paper. I've also picked up new languages and frameworks by example, and so I prefer books that follow that mantra. Spring in Practice evolves around web application development since the authors are well versed in it. They have broken the book into three parts titled "Getting Started", "General Application Recipes" and "Domain-Specific Recipes".
In the first part, "Getting Started", the authors cover dependency injection and the Spring container by providing a solid explanation of the principles and how Spring applies them. This first chapter is critical to understand for anyone new to Spring and shouldn't be skipped before moving elsewhere in the book. The next topic of discussion is persistence, explicitly with JPA and Hibernate. You'll learn how to setup a data source, create a generic DAO with a Hibernate based implementation and even touch a little bit on transactions. Finally, part one of the book wraps up with an introduction into Spring Web MVC, Spring's approach to the model-view-controller pattern.
Part two, "General Application Recipes", covers topics including security, form validation, email, AOP (Aspect Oriented Programming) and even RSS. Spring Security, formerly Acegi, is nicely explained in a manner that makes sense. If you've read about Spring Security you know it's flexible and powerful, both of which are excellent features to have in an API, however it also makes it a bit daunting to try and wrap your head around. The authors take a slow and steady approach at introducing the capabilities of the security framework without overhwelming you with details and possibilities. By the end you'll be able to create a login form with "remember me" functionality, as well as, role-based and ACL-based authorization. Beyond security the chapters in part two also walk through setting up a web-based form (for comments, feedback, etc).
Part three, "Domain-Specific Recipes", provides recipes for even more specific problems. At the time of this review only two chapters, chapter eleven and sixteen, from this section were available for review (the book is currently under Manning's MEAP program). However, this section covers using additional libraries such as Hibernate and Lucene to create an image search index. Lastly the book works through a portal-style ticketing system which makes use of Spring Integration, Spring MVC and even JavaMail.
Overall, I really like the practical style the authors have taken instead of the drawn out overly-detailed reference style many other books take. The hands-on approach and practical examples make it easy to read and make it easy to get jump right in and get started, even though it heavily evolves around web applications.
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)