Wednesday, June 20, 2007

Spring Framework Introduction & Training

It's strange that the first post in this blog is about the Spring Framework, because I haven't been working with Spring for about a year...

Recently I've given a one-day training for a group of young but powerful developers. It was a training of the Spring Framework 2.0 for Java.

There are many great presentations of Spring all over the Internet, but I couldn't find one that covers all issues as I wanted (I guess that it's a matter of taste...).
So I prepared a long Power Point presentation and some exercises for a hands-on training session. The presentation includes content from the reference manual of Spring, from a few publicly available presentations, from relevant Wikipedia articles and other resources. All resources are listed in the presentation.

I thought that the presentation and exercise might be useful for developers that want to learn about the Spring framework or want to start using it. It also might be useful for experienced Spring-based developers that need to train other developers and look for a technical presentation and an exercise.

So here you can freely download the presentation (which also includes the description of the exercises), a skeleton for easily starting to implement the exercise and an implemented solution for the exercise.


The presentation is very technical in its nature. It includes a general description of the Spring Framework and the relevant technologies (AOP - Aspect Oriented Programming, IoC - Inversion of Control, etc.), but it's main focus is on real-life usage of Spring that makes the developer's life easier.

The presentation includes the following sections:



Like any presentation, the slides alone are not enough. A person that have hands-on experience with Spring is needed for giving a training based on it.

I worked intensively with the Spring Framework in a previous start-up company I was part of. After a previous experience with J2EE (before it was renamed to JEE), which involved the BEA WebLogic Application Server, we wanted to have a much lighter and flexible environment while enjoying the concepts of IoC and AOP. We've built our very demanding applications with the help of the Spring Framework. Actually, before using Spring (and before Spring had publicly known stable versions), we have found ourselves developing frameworks that tried doing quite the same as what Spring does. Those frameworks worked nicely, but it's always better to use a popular and strong open source product instead of developing your own...

Spring allowed us to concentrate on the business logic code only and easily transform our applications between being light standalone applications, unit-tests based on mock-ups, J2EE application server (JBoss) hosted services, multi-tier architectural systems and more. Spring also made our code (& life) simpler while using Spring's integration with Hibernate for OR/M, JDBC for direct SQL, JMS queues, remote HTTP web services, Quartz scheduling, Transaction Management, JUnit tests and others.

Spring, of course, is not perfect and it's hard to tell whether it's still the best option now that EJB3 and other new technologies are available. But I enjoyed preparing and giving this training session because I believe that the Spring Framework is very useful for any Java developer and that bringing AOP and IoC from academic publications into easy-to-use every day programming allows having better written and maintainable projects.

No comments: