1
Introducción
- Buenas prácticas: separación de responsabilidades, DRY, KISS, clases agnósticas, POJO.
- El principio de división en capas: acceso a datos, negocio y Web.
- Papel de Spring, Hibernate, Jersey y AngularJS.
- Librerías adicionales: logging con slf4j y logback, pruebas unitarias con JUnit, mocks.
- El principio de "aplicación de página única".
2
Entorno de trabajo
- El entorno Eclipse.
- El complemento Spring Tool Suite (STS).
- Dependencias de Maven.
Trabajo práctico
Instalación del IDE y del complemento Spring Tool Suite.
3
Creación de una arquitectura multicapa con Spring
- Capas, el enfoque POJO.
- Gestión estatal.
- Inyección de dependencia.
- Intercepciones.
- Invocaciones previstas.
- Supervisión con JMX.
- Configuración del contenedor (anotaciones, mediante XML).
- Pruebas de bean gestionadas.
Trabajo práctico
Implementación de una aplicación multicapa, utilizando Spring como factoría para gestionar nuestros objetos (ciclo de vida, inyección de dependencias, etc.).
4
Acceso a datos con Hibernate y JPA
- Cartografía de objetos relacionales (XML, anotaciones).
- Carga perezosa.
- La API EntityManagerFactory y EntityManager.
- JPA-QL, Criterios API, MetaModelo, EntityGraph.
- Gestión de transacciones, el vínculo entre el acoplamiento de JPA y JTA.
Trabajo práctico
Configuración de entidades persistentes. Gestión de Spring del ciclo entityManager de JPA, uso del monitor transaccional de Spring y anotaciones JTA.
5
Servicios Web REST, API JAX-RS vs Spring MVC
- ¿Qué es un URI?
- Recordatorios HTTP: verbos (GET, PUT...), retornos, contentType, cabeceras, gestión de caché.
- CORS: Recurso Compartido de Origen Cruzado.
- HATEOAS.
- Implementación de servicios REST (JAX-RS y Jersey).
- Comparación con Spring MVC.
Trabajo práctico
Desarrollo de una API REST que muestre los recursos del año anterior.
6
Cliente HTML/JavaScript con AngularJS
- La ventaja de la HMI del lado del cliente.
- La trampa de la manipulación del DOM.
- El enfoque propuesto por AngularJS.
- JavaScript isomórfico para la renderización del lado del servidor.
Trabajo práctico
Creación de un cliente HTML/JavaScript con AngularJS utilizando la API REST desarrollada anteriormente.