Spring is a layered architecture, meaning that you can choose to use only part of it without affecting others. Its framework system is internally compatible. So you're going to get the most value out of your learning curve.
For example, you can choose to use only spring JDBC as a single application or manage your business objects with spring.
Spring can effectively organize your middle-tier objects, regardless of whether or not you choose an EJB. Spring is concerned with parts that are left to yourself if you choose struts or other frameworks that use specific Java-EE APIs.
Spring can eliminate the heavy use of Singlton that occur in many projects. In my experience, the main problem is that it weakens the test ability and the object-oriented.
Spring eliminates the need for a diverse set of custom attribute files and uses consistent configuration operations throughout the application and project. A variety of attribute health or system attributes to find so you have to read Javadoc or even source code? However, sping can make it very easy for you to see the attributes of these class JavaBean. Use of inverted controls (described below)
can help you complete the simplification.
Spring can make good programming habits easier to develop, using interfaces instead of classes to reduce programming costs and minimize them.
Spring's design makes it possible to build applications that rely on very few APIs. Many business objects in spring applications do not rely on spring at all.
Using sping to make unit tests very simple.
Spring is a choice that uses ejbs better than a deterministic application architecture. You can choose to extend your business excuses as POJOs or local EJBs without affecting the calling code.
Spring can help you solve many of the problems without EJBS. Spring can provide an alternative to EJB that adapts to many Web applications ... For example, Spring can borrow AOP to provide declarative transaction management without using an EJB container.
If you only need to work on a single database, even without JTA support.
Spring provides a consistent data access framework, either with JDBC or R/O mapping products like hibernate.