Spring – Introduccion

Spring es un framework ligero para el desarrollo de aplicaciones, tambien se dice que es es un contenedor “ligero”, no nos olvidemos que no es un servidor de aplicaciones, si no que corre como una aplicación  Por contraposición a otros que solo se pueden utilizar en entornos web(Strust, WebWork,…), Spring esta pensado para que pueda ser utilizado en cualquier entorno y puede dar soporte a todas las capas de una aplicación.

Spring es bastante grande, por ello el proyecto esta dividido en módulos. No siempre se utiliza en un proyecto todo lo que tiene spring, y tampoco es necesario que lo hagas. Por poner un ejemplo, podrías utilizar Struts para la parte web, en vez de Spring MVC. Si utilizas un framework de persistencia, como Hibernate o iBatis, tendrías que incluir spring-orm en tu classpath.

imagenSpring

En la imagen, presentamos de una manera esquemática los módulos que componen el framework Spring, y su unión en conjuntos funcionales:

  • Contenedor Central (Core Container)
  • Acceso a Datos / Integración
  • WEB
  • AOP (Programación Orientada a Aspectos)
  • Instrumentación
  • Pruebas

Ventajas

La capacidad que tiene Spring en integrase con otras herramientas, nos brinda la posibilidad de escoger nuestra forma de trabajo como mas nos convenga. Podemos utilizar herramientas ORM como Hibernate, iBatis y JDO, podemos incorporar EJB, JNDI, para las vistas podemos utilizar distintas tecnologías como JSP, Tiles, Velocity, PDF, Excel, cuenta con un modulo de envío de mails, como hemos comentado antes,podemos configurar su integración con otros frameworks como Strust o WebWork

El trabajar con el framework, a la vez que nos libera de la necesidad de pensar como estructurar la aplicación  no crea una estructura solida, permitiendo al programador centrarse en lo que para el es realmente importante, y es conseguir una aplicación de calidad que cumpla con los requerimientos previstos.

Esa misma estructuracion, hace que cualquier persona con conocimientos de Spring pueda entenderla y mantenerla con facilidad.

La utilizacion del patron MVC facilita la reutilizacion del codigo, a la vez que fuerza su modularidad

Al facilitar el framework clases e interfaces para el acceso a datos, nos facilita que los accesos se realicen de forma segura, y no queden abiertas conexiones, capturando las excepciones y traduciéndolas a excepciones de Spring

Inversión de control e inyeccción de dependencias

Cuando trabajamos en java, para relacionar dos objetos, necesitas inyectar en uno una instacia de otro . Si trabajamos con Spring, esto nos lo realiza el propio framework. Basicamente, se trata de declarar en un XML(Application Context) los componentes de tu aplicacion y sus dependencias y spring crea los componentes y las relaciones entre ellos. En las ultimas versiones, ademas, nos permite anotaciones, y eso hace que podamos anotar una propiedad en una clase mediante @Autowired y Spring se encargará de buscar la clase instanciarla e inyectarla sin que tengamos que escribir nada mas.

El framework AOP

Lo que estamos llamando framework AOP, es una parte de Spring. AOP son las iniciales para Programación Orientada a Aspectos, y que complementa la Programación Orientada a Objetos (POO) proponiendo otra manera de pensar sobre la estructura de un programa. Mientras que la POO descompone las aplicaciones en una jerarquía de objetos, la AOP descompone los programas en aspectos (aspects) o preocupaciones (concerns). Esto permite la modularización de preocupaciones justo como el manejo de transacciones que pueden ser aplicados a múltiples objetos.

Seguridad

Spring Security, antes conocido como Acegi,nos proporciona la posibilidad de crear una capa de seguridad declarativa en nuestras aplicaciones basadas en Spring.Las condiciones de seguridad viajan en el artefacto a desplegar, lo que hace más fácil tanto el desarrollo como la migración o el mantenimiento de nuestro sistema. Las condiciones y la infraestructura son las mismas, despleguemos en un Jboss, en un Tomcat o en un Glassfish, aportando un poco más de independencia del entorno de despliegue del que se puede conseguir con JEE5 o JAAS.

A continuación indicamos algunos de los sistemas de identificación para los que Spring Security proporciona de serie la posibilidad de usar:

  • HTTP BASIC
  • HTTP Digest
  • HTTP X.509
  • LDAP
  • Formularios HTML
  • Base de datos.
  • OpenID
  • JA-SIG Central Authentication
  • Computer Associates Siteminder
  • JAAS
  • Soluciones para contenedores (Jboss, Tomcat, Jetty)
  • Java Open Source Single Sign On
  • Autentificación anónima.

Acerca de Miguel Garcia

Programador, Desarrollador web, Formador en distintas areas de informatica y director de equipos multidisciplinares.

Esta entrada fue publicada en Desarrollo Web, Formacion, Java, Spring y etiquetada , , , , . Guarda el enlace permanente.

Una respuesta a Spring – Introduccion

  1. Pingback: Spring-Mi primer proyectoRecursos para formacion

Deja un comentario