----------------
The main aim of Spring framework is to elliminate the complexities of writing a complex J2EE application.e.g in a typical J2EE env, if you want to access EJB, then Spring takes away the pain of using JNDI or if you need to use JDBC, then it takes away the pain of using "try" "catch" "finally" blocks etc.
1)-Helps designing and organizing the components(web-tier as well as
the server side bsuiness components) in a much layered manner(Just like BC4J, but more than that)
2)-It uses simple POJOs as the business logic class instead of EJBs.
3)-It has got a greater support for Dependency Injection as each layer of
code in Spring framework works in isolations. So essentially developers
can pull out any layer and test them in isolation.
4)-It has a great JDBC wrapper in it.
5)-It has Inversion of Control container and AOP.(Please google for these two terms)
6)-Most importantly, it provides an env to have a Test Driven Development.
Listen to this webcast by Rod Johson, the founder of Spring Framework.