Sunday, June 21, 2009
Spring Web Flow 2 Web Development is a great read for developers who want to take a hands-on approach to learning a great technology. By following and working with the examples, you can experience the basic principles of Spring Web Flow 2 and how it integrates with JSF, Spring Security and AJAX. This book is great for Java developers who are already using the core Spring Framework and now want to involve Spring in the presentation tier of a Web application.
Within the first few chapters, the authors present a good overview of Spring Web Flow 2. Chapter 2 starts with the installation of Spring Web Flow 2 and some help with running the examples packaged within the distribution. Chapter 2 also goes over putting together a development environment that is based on some pretty standard open source technologies like Ant, Maven, Ivy, Eclipse (Spring IDE) and NetBeans. The "Support for Developers" section of chapter 2 is a great feature of this book because if you are not already familiar with the aforementioned technologies, you get exposure to some great open source development tools. After learning a little more about how everything works together, the authors throw in a little JPA and by the end of chapter 2, you have completed your first example.
The focus of chapter 4 is Spring Faces. In my opinion, if you are going to work with JSF, focus on this chapter because Web Flow 2 is what is missing from JSF. I am not a big fan of some of the JSF implementations I have used in the past, but Web Flow 2 makes working with JSF and Facelets a bit nicer and the Spring Faces tag library is very helpful. Combine chapter 4 with chapter 5's sections on Subflows and AJAX and you will have a good foundation for creating rich Web applications with Web Flow 2.
Chapter 6 illustrates Spring Web Flow 2's testing support. A very important part of the development process is testing. Too many developers overlook the importance of testing especially when it comes to Web applications. Web Flow 2 comes with great testing support and as the book points out, testing support is part of the framework rather than an after-thought for developers.
Some Web applications require some level of security and most enterprise Web applications have to incorporate support for authentication and multiple levels of authorization. Chapter 7 discusses the integration of Web Flow 2 with Spring Security, formerly Acegi Security. This chapter provides a great high level view of Spring Security configuration and how to lock down access to parts of a Web page and even method level security.
Overall I enjoyed reading this book and learning Spring Web Flow 2. The authors, Markus Stäuble and Sven Lüppken, did a great job in presenting the core concepts of the technology in only 200+ pages. Prior to reading the book, I had little knowledge of the technology, but now I would be comfortable working on a project that is utilizing Spring Web Flow 2. More information about the book and authors can be found at www.packtpub.com.