Si programáis en Java es muy probable que hayáis oído hablar o incluso utilicéis Spring. Spring es una maravilla sobre todo si el proyecto es grande.
¿Qué es Spring?
Spring es una plataforma Java que provee una infraestructura que sirve de soporte para desarrollar aplicaciones empresariales Java. Entre los servicios que proporciona cabe destacar la autenticación, la autorización y la gestión de pruebas. Además la característica principal es la inyección de dependencias a través de la inversión de control. Spring está compuesto por varios módulos, sin embargo solo es necesario utilizar los que nos sirvan para la aplicación que estemos desarrollando. La siguiente imágen muestra todos los módulos de Spring.
Inyección de dependencias e inversión de control
Hablaremos ahora de una de las principales características de Spring. En las aplicaciones que utilizan la inversión de control, no se crean los objetos con new, si no que se declara en un fichero de configuración o mediante anotaciones qué dependencias tienen. Esas dependencias se inyectan mediante la famosa anotación @Autowired. Este modelo es especialmente potente en aplicaciones basadas en interfaces, ya que se consigue un bajo acoplamiento entre los componentes.
Ventajas de Spring
Las ventajas del uso de Spring son las siguientes:
- Permite desarrollar aplicaciones empresariales usando POJOs (Plain Old Java Objects). Las ventajas de usar POJOs es que no es necesario un contenedor de EJB como por ejemplo un servidor de aplicaciones si no que se puede utilizar un contenedor de servlets como Tomcat.
- Está organizado de forma modular. Aunque el número de paquetes y clases sea grande, solo es necesario preocuparse de las que se necesitan en cada momento ignorando el resto.
- Probar una aplicación escrita con Spring es fácil ya que el código dependiente del entorno está dentro de este framework. Además, usando POJOs es más fácil usar la inyección de dependencias para inyectar los datos de prueba.
- Proporciona una API para traducir excepciones específicas de cada tecnología (lanzadas por JDBC, Hibernate o JDO por ejemplo) en excepciones consistentes y no comprobadas.
- Proporciona una interfaz para la gestión de transacciones consistente que puede reducirse para una transacción local (usando una sola base de datos por ejemplo) o aumentarse para transacciones globales (usando JTA por ejemplo).
Conclusiones
El uso de Spring se ha popularizado en los últimos años ya que es un gran aliado para el desarrollo de aplicaciones empresariales y mejora al modelo J2EE. Por eso, si se desarrolla en Java creo que es algo que hay que aprender.
El artículo Spring Framework apareció por primera vez en Instinto Binario.