Spring in Action. Second Edition (Part 1. Core Spring) | | |
| | |
It was December 7, 2005. I was standing at the side of a large hotel meeting room | | |
in Miami Beach, Florida. The room was filled with developers from all over the | | |
world who had descended upon the beautiful sandy beaches of southern Florida | | |
for a single purpose: to talk about Spring. | | |
What can I say? It was a room full of nerds. Rather than soak in the sun and | | |
surf, we all gathered inside to bask in the warm glow of our laptop screens to learn | | |
more about our beloved framework from those who know it best. | | |
On that particular night, we were hanging on the words of Spring’s creator, | | |
Rod Johnson, as he presented the opening keynote for the conference. He spoke | | |
of Spring’s origins and the successes it had enjoyed. Then he invited a few members | | |
of the Spring team to the podium to introduce new features that were to be | | |
| | |
He wasn’t far into his presentation when Rod made an announcement that | | |
caught everyone’s attention. We were all expecting these great new features to be | | |
available in Spring 1.3, the supposed next version of Spring. Much to our surprise, | | |
Rod informed us that there would be no Spring 1.3; the next version would be | | |
| | |
The decision to bump up the major version number of the next release isn’t | | |
made lightly. Such an action connotes a significant advance in Spring. If the next | | |
version of Spring would be 2.0, then we could expect major enhancements. | | |
Indeed, ten months later, Spring 2.0 would be released with an abundance of new | | |
| | |
• Simplified XML configuration and the option to create custom configuration elements | | |
• Greatly simplified AOP and transactions | | |
• Support for Java 5 annotations for declaring aspects, transactions, and required bean properties | | |
• The ability to create beans from scripts written in JRuby, Groovy, or Bean-Shell | | |
• New JDBC templates to support named parameters and Java 5 features | | |
• Improved JMS support, including receiving messages asynchronously (for creating message-driven POJOs) | | |