Agile Java Development with Spring, Hibernate and Eclipse

by Anil Hemrajani

July 23, 2006

Back in the year 2000 the author of this book wrote an article for JavaWorld.com called "Do You Really Need Enterprise Java Beans?". Five years later as the EJB 3.0 re-write is taking place Java is perceived by many as being heavy and it stands to lose popularity to alternatives such as LAMP, Ruby on Rails, and .NET. Anil's book goes a long way to reversing this trend by demonstrating a combination of technologies promising to bring simplicity back to Java and showing us how to use them to build an application complete with enterprise features.

Pause and think about the sheer number of topics required to effectively write enterprise applications: methodology, design, build tools, testing strategies, IDE's, web frameworks, OR mapping tools, relational databases in addition to concerns such as transaction management, security, clustering, concurrency, monitoring, profiling and on the list goes. Each one of these topics requires a book on its own! It is rare to find a single book that tries to make sense of it all - something developers must do daily to be effective. Drawing on his background as a successful practitioner, in under 300 pages Anil distills knowledge in a style that is agile in nature, i.e. simple and minimalistic.

Remaining true to another Agile value - working software over comprehensive documentation, the book comes with fully working end-to-end software. In my mind it is this software that makes the book such an effective learning tool. You can only say so many things before winding up with hundreds of pages of text. Working software on the other hand serves as a point of reference especially when reality forces you to go back and check something you didn't understand the first time around.

One potential issue with this book is you may read something in an area you're already familiar with. This is likely to occur when so many topics are addressed in one book. However, dispersed throughout are boxes shaded in grey where Anil expresses personal opinons and shares stories on topics ranging from the value of UML diagrams, to designing with interfaces, GUI development tool battles, and many more. This adds a nice touch and a unique perspective even to areas you may know a thing or two about.

Personally I was skeptical of a book covering breadth but not depth. In retrospect I can say simplicity is the domain of experts. Anil has used his expertise to pick the minimum we need to know to get by. He has complemented that with a handful of selected references at the end of each chapter and with a fully functional, uncomplicated, all-Java (including the hsqldb database) solution.

By all means you will not be an expert on agile methodologies nor on using Spring or Hibernate after reading this book. Instead think of it as a map with expert notes, the picture you need to get you started and the pointers you'll use to go from there.