Why do we need to learn Spring? and where can we use it
I believe that Spring is unique, for several reasons:
It addresses important areas that many other popular frameworks don't. Spring focuses around providing a way to manage your business objects. Spring is both comprehensive and modular.
Spring has a layered architecture, meaning that you can choose to use just about any part of it in isolation, yet its architecture is internally consistent. So you get maximum value from your learning curve. You might choose to use Spring only to simplify use of JDBC, for example, or you might choose to use Spring to manage all your business objects. And it's easy to introduce Spring incrementally into existing projects. Spring is designed from the ground up to help you write code that's easy to test. Spring is an ideal framework for test driven projects. Spring is an increasingly important integration technology, its role recognized by several large vendors.