Author(s): Gary Mak.
Published: Jun 2008
This wonderful book, Spring Recipes, covers in a very decent way Spring 2.5 from basic to advanced and in many cases some compatible configurations for 1.x, scalable. It is a way to learn each chapter throught the book, 19 well-organized chapters that cover the most important topics in the J2EE world with Spring, and of course, Spring core itself
This Book is available here
My personal analysis and appreciation below
Part 1: Core 1
- Chapter 1 Inversion of Control and containers
- Chapter 2 Introduction to Spring
- Chapter 3 Bean Configuration in Spring
- Chapter 4 Advanced Spring IoC Container
- Chapter 5 Dynamic Proxy and Classic Spring AOP
- Chapter 6 Spring 2.x AOP and AspectJ Support
The best book in handle in how to teach you these topics with a very decent material specially for AOP. This Part is almost dedicated for beginners and already Spring developers that want to learn the new features used by Spring.
Part 2: Fundamentals
- Chapter 7 Spring JDBC Support
- Chapter 8 Transaction Management in Spring
- Chapter 9 Spring ORM Support
- Chapter 10 Spring MVC Framework
- Chapter 11 Integrating Spring with Other Web Frameworks
- Chapter 12 Spring Testing Support
For "Spring JDBC Support", it has an excellent explanation and reason of the things. It offers a concrete way to learn sure jdbc with/without Spring support and to see the important differences about code/configuration/features
For "Transaction Management in Spring", it has good theory and clear concrete examples teaching different ways in how handle many options for this important topic (furthermore with AOP for Spring 1.x/2.x). The most important feature that I have seen in this chapter and really I like it, is that, this is the unique book written (among the books I have already read) that offers examples for almost all the options available about configurations for "Propagation Behaviors"(the two most important) and for "Isolation Levels"(for example, all of them, except Serializable), so it gives you really a better idea about the problems related with transactions and its solutions for each approach. Furthermore, it really teaches you the differences between the configurations and its respective behavior for each one. Instead, other books only show a table with the theory of each point, and then a simple example and nothing more.
For "Spring ORM Support ", it teaches you how to make a successful integration with Hibernate/JPA and how to manage a transaction with them and Spring.
For "Spring MVC Framework", it teaches you in a very good way the most important things in this important framework of Spring (I consider this better than Struts) in many ways and showing how to use interfaces and super classes of controller offered by Spring MVC with simple and concrete examples
For "Integrating Spring with Other Web Frameworks", if you are a veteran using Struts 1.x, it shows you in a fast and concrete way how to get a successful integration (not for Struts 2.x), same style for JSF. Something important and very necessary currently in a web application is ajax. The most important solution is DWR and this book teaches you how to get a successful integration (the classic way)
For "Spring Testing Support", important in any phase of development, the chapter is nice, showing how use JUnit(4.4 and 3.8) with Spring, and even with MVC controllers. Furthermore EasyMock is included in this chapter too; a nice approach is that it teaches you how to use JUnit with "Managing Transactions" and "Accessing Databases"
Part 3: Advanced
- Chapter 13 Spring Security
- Chapter 14 Spring Portlet MVC Framework
- Chapter 15 Spring Web Flow
- Chapter 16 Spring Remoting and Web Services
- Chapter 17 Spring Support for EJB and JMS
- Chapter 18 Spring Support for JMX, E-mail, and Scheduling
- Chapter 19 Scripting in Spring
For "Spring Security" this is clearly a critical area in any application in real live. This book teaches you in a easy and concrete way the classic "Url Access" and "Method Invocations" even with Pointcuts among other features
For "Spring Portlet MVC Framework", I don’t know anything about Portlet but this chapter is clearly well structured like the other chapters
For "Spring Web Flow" explains in a decent way SWF for 2.0 version. I think that SWF should be explained in a dedicated book
For "Spring Remoting and Web Services" offers a very clear and concrete use of many options related with this topic like RMI, Hessian, Burlap, Web Services; easy material to learn important things in this topic.
For "Spring Support for EJB and JMS", again I don’t know anything about EJB but this chapter is clearly well structured like the other chapters and teaches you how to work with EJB 2.x/3.0 with Spring. It covers in a good way JMS with concrete and detailed examples.
For "Spring Support for JMX, E-mail, and Scheduling", it covers well these three topics. The chapter is decent, and has concrete theory and codes.
For "Scripting in Spring" is the shortest one. I don’t know why, but it’s really very concrete in the way it is taught.
In These days any aspirant to Java Developer must learn in some point to work with J2EE. The decision can be easy but the huge problem appears in how to learn this from the scratch. Years ago the only option to work with J2EE was EJB (a wonderful pain), now, Spring, our savior. The obvious question would be, which book I must buy to learn Spring?. Years ago the leader books I have already read are these books by order:
- "Spring in Action" 1rst Edition
- "Pro Spring"
- "Expert Spring MVC and Web Flows"
- "Working with Spring Web Flow"
- "Spring in Action" 2nd Edition
But with Spring 2.x out there, many of these books are not very useful now, of course about the new features offered by Spring (Annotations, AspectJ Support etc ). If you are a beginner and you want to learn from the scratch Spring in an excellent book structured with the most important features of Spring 2.x, don’t think twice and buy it this one. Something that I like of this book is that it offers you not only one way to do a work/configuration; instead you can find, for example, one solution using XML, and other annotations, and it is very useful for future reference.
In the follow review you have a comparison between