HOLLYWOOD, Fla.-Popular sites such as LinkedIn and MTV are using the Spring Framework to lessen the complexity of their Java development environments.
At the SpringOne Americas developer conference here, Yan Pujante, a distinguished software engineer and member of the founding team at LinkedIn, said the social networking organization has been using Spring since 2005 and has more than 1,600 Spring files in use and more than 15,400 Spring Beans for an average of nine Beans per Spring file.
Pujante said LinkedIn uses Spring for various things, but primarily uses Spring Core and Spring IoC. IoC is Inversion of Control, also known as dependency injection. Dependency injection refers to the process of supplying an external dependency to a software component. LinkedIn also uses Spring MVC and is looking at the new Spring dm Server for its modular OSGi (Open Services Gateway Initiative) capabilities, Pujante said.
Why Spring? "There were some problems we wanted to solve," including hard-coded wiring, issues with configuration, manual life-cycle management and hard-to-reuse software wiring, Pujante said. So LinkedIn's solution was to use Spring in addition to some LinkedIn extensions.
With Spring as a solution, Pujante said, "Wiring is not in code anymore, there is a standard way to inject configuration, Spring handles life-cycle issues automatically and it is easier to reuse Spring files."
Moreover, Pujante said Spring is extensible and his LinkedIn team "enhanced" it to support its particular needs. "We decided to enhance Spring to do what we wanted it to do," Pujante said. "We added a new XML vocabulary. Another way to extend Spring is having your own custom property editor," he said.
In addition to the new XML vocabulary and custom property editors, LinkedIn also added a new kind of application context for life-cycle management with components, Pujante said.
Pujante said LinkedIn also created LinkedIn Spring components. A LinkedIn Spring component is a reusable, self-contained piece of Spring wiring and configuration that is recursive by nature and is integrated into the LinkedIn build framework.
LinkedIn, created in 2003, has more than 30 million members. The company has two data centers with more than 600 machines supporting an infrastructure of Java applications, SOA (service-oriented architecture) platforms, Apache Tomcat, Spring, Oracle, MySQL, OSGi and other components.
Meanwhile, Pujante said although Spring has helped a lot in creating applications at LinkedIn, it does have its minuses, including the drawbacks that XML is verbose and code refactoring does not work well with Spring files.