Java Spring Framework{4}


Today, Business and developers are always finding different ways to give them that competitive edge in the technology market.  One of the first major game changers was the Java Spring Framework, released in 2002. It has evolved over the years and helped java be able to evolve and still work with many new and existing external platforms today. As with every program there are specific intentions or roles it is meant to be able to accomplish.  If we were to try and compare what the Java Spring framework role is in laymen terms, it would be considered the piping and internal structure design of a house, by helping move things in and out on a set smooth pattern. As we have moved form log cabins to ultra modern smart homes, the design of the piping and internal structure has significantly changed to adapt. The Java Spring Framework like we have seen on the market in the last few years has done just that. According to Springsource.org “The Spring Framework helps you build Java Applications faster because it allows you to focus on your business problem rather than the plumbing code that connects components and systems.” (Spring Source) Throughout this blog I will explain the history and the practical use of the Java Spring Framework, as we use it today.

Brief History

Rod Johnson originally wrote the Java Spring Framework in 2002. Recently Java Spring Framework was shortened to “spring.”  It was first released in 2003 under the Apache 2.0 license and hit some major release updates in 2004 and 2005. It won the Jolt productivity award in 2006. (LaPlante) The newest version of spring is 3.2.2, it was released in March 2013. Currently VMware acquired  Java Spring Framework for $420 million dollars. (Spring 3.0)

The Java Spring Framework’s aim is to make existing technologies easier to use. In doing so, its main purpose is to make Java Platform Enterprise Edition (J2EE) easier to use. Spring also promotes good programming practices. However, Spring is a framework not the language, thus you’ll find no logging packages in Spring. Nor connection pools or a distributed transaction coordinator. Your application server or other Open source applications will provide these. Spring is not a type of code but more of a template.

What is Java Spring Framework?

            In Short, today it is an open source framework and control container for the Java environment. According to Spring Source more than 3 million developers are currently using it. As I stated earlier, some call it the plumbing and piping part of the java environment. Its founding principle is dependency injection.  Dependency Injection has a few different names but it is also know as Inversion of control.  Know you might be asking yourself what is Dependency Injection ? According to the author of just spring, Konda, “When a standalone program starts, it starts the main program, creates the dependencies, and then proceeds to execute the appropriate methods. However, this is exactly the reverse if IoC is applied. That is, all the dependencies and relationships are created by the IoC container and then they are injected into the main program as properties. The program is then ready for action. This is essentially the reverse of usual program creation, thus the name Inversion of Control principle.” (Konda5)  As Spring has evolved over the years it now is also able to do: Aspect-oriented programming, Data access, Transaction management, Model–view–controller, Remote access framework, Convention over configuration, Authentication and authorization, Remote management, Messaging, and Testing.  The Bullet points below are a summary description of what each role does exactly as stated on Wikipedia.

 

  • Aspect-oriented programming- enables implementing cross-cutting.
  • Data access – allows working with relational database management systems on the Java platform and object-relational mapping tools and with NoSQL databases.
  • Transaction management – unifies several transaction management APIs and coordinates transactions for Java objects.
  • Model–view–controller – an HTTP- and servlet-based framework providing hooks for extension and customization for web applications and RESTful web services.
  • Remote access framework – configurative RPC-style marshaling of Java objects over networks supporting RMI, CORBA and HTTP-based protocols including web services (SOAP)
  • Convention over configuration – a rapid application development solution for Spring-based enterprise applications is offered in the Spring Roo module
  • Authentication and authorization – configurable security processes that support a range of standards, protocols, tools and practices via the Spring Security sub-project (formerly Acegi Security System for Spring).
  • Remote management – configurative exposure and management of Java objects for local or remote configuration via JMX
  • Messaging – configurative registration of message listener objects for transparent message-consumption from message queues via JMS, improvement of message sending over standard JMS APIs
  • Testing – support classes for writing unit tests and integration tests

 

Why use Spring?

Besides Spring being designed from the ground up to help you write code that’s easy to test. When Rod Jenson, the developer, was asked this very question his response was simple, “Spring makes it even easier for developers to build flexible, high-quality applications while providing a foundation for innovation in other open source projects and commercial projects. (Spring 3.0) Spring allows you to take your existing java projects and add to them by taking care of the infrastructure.  Unlike other frameworks, Spring evolves and adapts to the times and your needs, weather if be adding a database, security, a messaging system, a data tracker, mobile clients, etc. It also does not effect or limit you on using other implementations. One plus that Spring focuses around providing, is a way to manage your business objects. Spring also has a same structure, layered architecture, allowing you the opportunity to choose to use just about any part of the architecture in isolation.

(Image obtained from Spring Source)

Example of People who use Spring.

NFL
World Of Warcraft
VMware

In conclusion, Spring is not necessarily one more framework to add to your project. Spring is potentially a one-stop shop, addressing and taking care of  any of your infrastructure concerns. It also goes places other frameworks don’t. Being an open source project so there is much available to you as well.

 

References

Johnson, R. (2005). Introduction to the Spring Framework. TheServerSide.com, , Retrieved Form http://www.theserverside.com/news/1364527/Introduction-to-the-Spring-Framework

Konda, M. (2011). Just Spring. Sebastopol, CA: O’Reilly.

Krill, P. (2011). Spring framework founder: Java needs cloud accommodations. InfoWorld.Com, , n/a. Retrieved from http://search.proquest.com/docview/873067380?accountid=10357

Krill, P. (2009). Spring 3.0 framework for java to debut. InfoWorld.Com, Retrieved from http://search.proquest.com/docview/223173082?accountid=10357

LaPlante, R. (2006) Jolt Awards. Retrieved form http://www.drdobbs.com/joltawards/2006-jolt-awards/187900423?pgno=10

Springsource upgrades java framework; version 3.0 of the automated java programmer platform and a developer edition of spring tc server are the latest offerings from springsource. (2009).InformationWeek, .

Spring Source (n.d.). Retrieved from http://www.springsource.org/

Wikipedia (n.d.) Retrieved from http://en.wikipedia.org/wiki/Spring_Framework