Wednesday, April 26, 2006

Origins Of The Spring Framework

The Spring Framework has gained a lot of momentum in the last one or two years. When I first heard about it back in 2004, I hastily appraised it as just another J2EE framework. The J2EE stack in general had been quite OK for me, and while I did not necessarily like EJBs, I kind of accepted them the way they were (after all, not worse than COM+ components ;-) ). So I was reluctant to jump on what looked like the next bandwagon of technology hype. Some comments from luminaries such as Don Box and Ted Neward seemed to support my ad-hoc assumption (see Rod Johnson's reply).

But when I finally found the time to dig a little bit more into Spring, I noticed it included several very appealing approaches. To sum it up in two sentences, Spring is a non-invasive Java infrastructure framework complementing J2EE (but not necessarily bound to J2EE exclusively). Architecturally based on the Inversion-Of-Control pattern (AKA Dependency Injection), it provides developers with an easy-to-understand programming model (based on POJOs, as opposed to EJBs for example). Dependency injection opens a whole range of possibilities, such a lose coupling, unit testing, declarative transactions and AOP in general. For more details, you might want to have a look at the article "Introduction to the Spring Framework".

Rod Johnson of course is the original creator of Spring, and what I didn't know before is that all of this dates back to some web framework components he introduced in his 2002 book "Expert One-on-One J2EE Design and Development". Several readers then convinced him to open-source his framework, and went to work on it under its new label "Spring Framework". I actually had "Expert One-on-One J2EE Design and Development" at home for a year or so not knowing that it already described back then what Spring is all about today.

As another side note, one of Spring's main contributors, namely Juergen Hoeller, used to study computer science at the University of Linz, Austria at the same time as I did. He is Spring lead developer today, and co-founded Interface21, a Spring consulting company, together with Rod Johnson. Congratulations guys, great job!