Spring framework: why use it?

Few people engaged in software development sphere would deny the popularity of Spring. As many would agree, it is not just what is called “one more framework” and it still preserves its popularity till now.

In this article let’s try to discuss why it is so popular and why use it. So let’s focus on the major advantages of this open source application framework for the Java platform.

Following are some of the major benefits offered by the Spring Framework:

* Spring Enables POJO Programming. Spring enables programmers to develop enterprise-class applications using POJOs. With Spring, you are able to choose your own services and persistence framework. You program in POJOs and add enterprise services to them with configuration files. You build your program out of POJOs and configure it, and the rest is hidden from you.
* Spring Provides Better Leverage. With Spring, more work can be done with each line of code. You code in a more fast way, and maintain less. There’s no transaction processing. Spring allows you to build configuration code to handle that. You don’t have to close the session to manage resources. You don’t have to do configuration on your own. Besides you are free to manage the exceptions at the most appropriate place not facing the necessity of managing them at this level as the exceptions are unchecked.
* Dependency Injection Helps Testability. Spring greatly improves your testability through a design pattern called Dependency Injection (DI). DI lets you code a production dependency and a test dependency. Testing of a Spring based application is easy because all the related environment and dependent code is moved into the framework.
* Inversion of Control Simplifies JDBC. JDBC applications are quite verbose and time-taking. What may help is a good abstraction layer. With Spring you can customize a default JDBC method with a query and an anonymous inner class to lessen much of the hard work.
* Spring’s coherence. Spring is a combination of ideas into a coherent whole, along with an overall architectural vision to facilitate effective use, so it is much better to use Spring than create your own equivalent solution.
* Basis on existing technologies. The spring framework is based on existing technologies like logging framework, ORM framework, JEE, JDK timers, Quartz and other view related technologies.

So you can’t but deny the fact that using of Spring framework gives you a number of advantages. Some consider it a kind of standard for enterprise Java development. The others would argue. You are certainly free to agree or disagree or choose it or not or which parts of it you want to use and which are useless. But the fact is that it may be rather effective and give you some benefits.

And what is your opinion of Spring framework? What do you see as its advantages? Please help me to make a list of them longer!:)

Thanks for your attention! Wait for your comments!