Spring es una de las herramientas más usadas para crear grandes portales web con Java. Sin embargo, a los programadores suele costarles trabajo usarla porque no entienden lo que hace (todo parece magia) ni conocen sus ventajas. Voy a explicarlo de forma sencilla:
- Es fácil configurarlo
Casi todo se puede configurar con archivos xml files, incluso opciones avanzadas como la conexión a base de datos, login con LDAP o indicar que acciones ejecutar cuando un usuario se conecta.
-
Integración con otras herramientas
Al ser una herramienta tan usada han hecho adaptadores para muchas otras siendo fácil conectarlas. Gracias a esto se puede configurar en pocos pasos para que haga tests (JUnit), use las mismas librerías que el resto de proyectos (Maven), se conecte de forma sencilla a la base de datos (Hibernate), etc.
-
Código ordenado
En lugar de tener código mezclado pone cada cosa en su sitio gracias al modelo MVC y a anotaciones especiales que permite separar el código en grupos como servicios or repositorios. Si lo comparamos con la fabricación de un coche sería como agrupar por un lado el motor y las piezas para que funcione (Controlador), por otro el depósito de gasolina y los tubos que la llevan al motor (Modelo) y en otro los asientos, chapa… (Vista)
- Uso de anotationes
Incluye muchas anotaciones que reducen el código para hacer acciones habituales. Por ejemplo, gracias @RequestMapping se indica que método va a manejar una url en vez de tener que definir un servlet y configurarlo en el archivo web.xml.
-
Fácil creación de objetos
Hacen falta muchos objetos para arrancar una aplicación web (para conectar con la base de datos, …) y esto suele ser complejo (hay que tener en cuenta en que orden se crean, como se relacionan…). Spring se encarga de todo esto gracias a su sistema de inyección de dependencias, y nosotros sólo tenemos que darle los datos que necesita (usuario, contraseña, etc.).
-
Fácil programación de formularios
Una de las tareas más tediosas suele ser coger los datos de los formularios, comprobar que están bien, recargar la página, mostrar errores… Spring se encarga de esto y es fácil definir etiquetas para ver si un campo está vacío, si un e-mail tiene un formato válido, etc.
- Gestión de la navegación por la web
En la mayoría de portales hay que realizar varios pasos para conseguir un resultado. Por ejemplo, para comprar un billete de avisón hay que indicar la fecha, seleccionar los asientos, dar los datos de pago… Spring WebFlow permite indicar en que estados puede estar el usuario y cómo pasa entre ellos, con lo que sólo hay que programar lo que ocurre en cada paso, como procesar el pago.
-
Estándar de programación
Todas las aplicaciones hechas con Spring están estructuradas de la misma forma, con lo que un programador puede cambiar de proyecto o de empresa y estar a pleno rendimiento en pocos días.
Espero que con esto os haya quedado más claro lo que hace y os animéis a trabajar con ella.
Y recuerda que puedes suscribirte y recibir estos artículos: [mc4wp_form]
Puedes decirme el nombre de un e-book o libro en español que pueda adquirir para empezar con la tecnología de spring para web, yo he utilizado struts y todavía no he podido deducir bien las diferencias entre estas tecnologías, y también de que manera puedo ponerla en practica rápidamente. El libro o e-book que me proporcionas si es con ejemplos de tal manera que pueda salir programando desde ya mejor.
Tu pagina es un éxito, gracias por las aportaciones, son muy interesantes.
Saludos.
Hola Alejandro.
Gracias por los comentarios. El mejor libro para empezar es “Spring in action”, que tiene una versión también en español. Una vez que lo domines, si vas a desarrollar una aplicación grande que use mensajes para conectar componentes, tienes “Spring Integration in action”. Y ya que estás empezando te recomiendo mirar Spring Boot, que simplifica mucho el comienzo ya que te ahorra de usar archivos xml de configuración y simplifica el uso de dependencias. Aquí tienes varios enlaces:
http://spring.io/guides
https://github.com/spring-projects/spring-boot/tree/master/spring-boot-samples
https://www.youtube.com/watch?v=eCos5VTtZoI