Search This Blog

Monday, February 26, 2007

Core Spring training experience

The training was given by Arjen Poutsma. Arjen works for Interface21 and is the lead developer of the Spring-WS sub project.

Day 1, 20 february 2007

Day 1 is all about the core concepts of the Spring framework like Inversion of Control and Dependency Injection. IOC and DI are essential parts to understanding Spring's architecture. Besides some basic subjects about IOC and DI there were also advanced concepts that were given attention: autowiring, life cycle callbacks, property editors, factory beans, post processors etc. The Lab's in day 1 were all about configuring application contexts. However there was also a bonus section which programmatically used AOP via ProxyFactory(s) with dynamic TargetSource(s).

If you already know Spring than the subjects in day 1 are familiar.

Day 2, 21 february 2007

Day 2 was all about effective middle tier architecture with Spring. Subjects that got attention were:

  • Persistence with Spring JDBC and ORM tools
  • Data Access Objects with Spring
  • Brief introduction about transaction management
  • Test Driven Development with Spring
  • Introduction to AOP
  • Advanced data access concepts such as: batch updates, blob handling and stored procedures.

The labs were about using Spring in conjunction with Hibernate and using Spring utilities for creating integration tests.

Day 3, 22 february 2007

After a brief introduction about transaction management in day 2, this day continued with the more advanced topics about transaction management. Specifically:

  • local versus global transactions
  • declarative versus programmatic
  • transaction propagation
  • isolation levels

The rest of the day was about Spring-MVC including several labs covering handler mappings, input forms and interceptors.

The last subject for this day was an introduction about Acegi security system for Spring.

Day 4, 23 february 2007

For me, day 4 was most interesting. This was mainly because AOP got in depth-attention. Arjen focused on Spring 2's support for AOP with Spring and AspectJ. Some advanced concepts such as introductions also got attention.

The remainder of the day was used to tell something about Spring's support for JMX and remoting. Arjens's project Spring-WS got little attention. The main point about Spring-WS is that it promotes contract-first development.

Things to remember

  • Spring 2.1 will not be compatible anymore with JDK 1.3
  • The upcoming new version of Spring IDE will support dependency listing for aspects build with Spring-AOP. With this feature you can view all aspects that are applied to a particular class.
  • Migrating from Spring-AOP to AspectJ is easier when using the @Aspect annotations in Java classes rather than using XML to configure aspects. This is because AspectJ understands these annotations.

Conclusion

Although I had experience with Spring before taking this training, I am glad I took it. A lot of concepts used in Spring were covered in detail. I can recommend this training to anyone who would like to gain more in depth knowledge of the Spring framework.

When taking this training, I found it very helpful to have knowledge about enterprise application patterns, transactions, J2EE, TDD, DDD, Hibernate etc.

3 comments:

Unknown said...

Hey Jamie,

thanks for posting comments to the training. It's always interesting to read some experiences from people that have attended the training.

One note. Spring 2.1 *will* be compatible with JDK 1.4. We plan to drop JDK 1.3 support, but not JDK 1.4 support! Recent figures we're picking up from the market tell us that rougly 50% of all production systems are deployed on JDK 1.4 with the other 50% on JDK 5. Dropping 1.4 support is not planned for at least another year.

regards,
Alef Arendsen

jcraane said...

Hi Alef,

You are right about 1.4 support. I changed this in my post.

Thanks for correcting me.

Regards,
Jamie Craane

Anonymous said...

Hello Jamie,

Can you please post the training transcripts if you have any?

Thanks & Regards