Diplomado de Spring Boot y Spring Framework (DPSPR01)


Spring se ha convertido en una de las plataformas de desarrollo back-end más usadas en el mundo. Incorpora diversos frameworks y componentes que facilitan la integración de tecnologías hechas por fabricantes diversos de una manera simple y ordenada.

Objetivo

Conseguir que el egresado sepa cómo y cuándo usar los módulos más relevantes de Spring Boot y Spring Framework

Descripción

Este programa enseña tanto los componentes, patrones, arquitecturas y tecnologías usadas y ofrecidas por Spring cómo los conceptos necesarios para comprenderlas.

Con este diplomado usted aprenderá cómo :

  • Usar Spring para hacer más productivo su proceso de desarrollo
  • Lograr aplicaciones altamente configurables
  • Desarrollar Aplicaciones Web clásicas
  • Implementar APIs Web RESTful
  • Construir aplicaciones basadas en microservicios
  • Aprovechar componentes Spring prefabricados

Será capaz de incorporar en sus desarrollos:

  • Configuración externalizada
  • Inyección de dependencias
  • Soporte multi-idioma
  • Repositorios de datos con tecnologías tanto relacionales cómo NO-SQL
  • Gestión de transacciones
  • Filtros de seguridad Web
  • Mecánicas de Autenticación y Autorización Web

Módulos

I. Fundamentos Spring Framework y Spring Boot (30 horas)

Este módulo enseña los conceptos, la filosofía, la arquitectura y los principales componentes usados por el núcleo de Spring. Y además lo hace a nivel práctico.

Contenido

  1. Arquitectura general de Spring
    • Qué es Spring Framework
    • Qué es Spring Boot
    • Cómo se relacionan Spring Boot y Spring Framework
    • Principales componentes
  2. Infraestructura de Inyección de dependencias
    • Fundamentos de la Inyección de dependencias
    • Arquitectura general del Inyector de dependencias (Ioc Container)
    • Configuraciones vía anotaciones
    • Configuraciones vs ambientes (Perfiles y propiedades)
    • Manejo de Eventos
    • Carga de recursos
    • Convertidores, formateadores y validadores
  3. Spring Expression Language
  4. Programación Orientada a Aspectos 
    • AoPConceptos centrales
    • Especificación de Pointcuts

II. Persistencia con Spring Data (40 horas)

Las aplicaciones se conectan a diversas fuentes de datos para leer y escribir información. Por otro lado hay diversas tecnologías de gestión de datos, cómo son las bases de datos relacionales, las bases de datos no sql, las APIs de acceso desde Java cómo JDBC y también hay ORMs cómo Hibernate.

Spring tiene un conjunto amplio de componentes prefabricados que facilitan la interacción con las tecnologías de datos. Este módulo enseña a usar las principales tecnologías de Spring para acceso a fuentes de datos y también explica los conceptos más relevantes asociados al manejo de la persistencia.

Contenido

  1. Infraestructura Spring de Soporte a JDBC
    • Soporte JDBC con JdbcTemplate
    • Repositorios JDBC
  2. Fundamentos de JPA (con Hibernate)
    • Conceptos centrales
    • Configuración en Spring Boot
    • Cómo mapear Tablas
    • Operaciones CRUD
    • Mapeo de relaciones y operaciones agregadas
    • Cómo mapear y usar llaves generadas por el manejador
    • Transacciones
  3. Soporte de Spring a JPA
    • Configuraciones
    • Implementación de Transacciones
    • Repositorios JPA
  4. Fundamentos de MongoDB
    • Conceptos de MongoDB y de tecnología No SQL
    • Operaciones CRUD
    • Documentos anidados
  5. Componentes de Spring para MongoDB
    1. Configuración
    2. Mapeo de colecciones
    3. Repositorios MongoDB

III. Desarrollo de aplicaciones y APIs Web (30 horas)

Spring ofrece una gama amplia de componentes para hacer aplicaciones web tradicionales, que usan el patrón modelo-vista-controlador, y también tiene tecnologías para implementar APIs REST.

Este módulo enseña a desarrollar tanto aplicaciones Web cómo APIs web, usando las tecnologías Spring más populares.

Contenido

  1. Configuración en Spring Boot
  2. Modelo de Implementación del patrón MVC en Spring
  3. Textos externalizados y multi-idioma
  4. Vistas Thymeleaf
    • Expresiones Thymeleaf comunes
    • Iteración en vistas Thymeleaf
    • Factorización de vistas
  5. Integración Modelo-Vista-Controlador
    • Implementación de una inserción típica
    • Validación de formularios
    • Manejo de excepciones
  6. REST en Spring MVC
    • Conceptos básicos
    • Implementación de API con operaciones CRUD
    • Manejo de excepciones
    • CORS
    • Desarrollo de clientes con RestTemplate

IV. Desarrollo de Microservicios con Spring Cloud (40 horas)

A partir de la evolución de las tecnologías de virtualización y de nube es posible hacer aplicaciones que consigan una alta disponibilidad a bajo costo. La arquitectura de microservicios persigue ese objetivo entre algunos otros.

Este módulo enseña a usar las principales tecnologías y componentes contenidas en el proyecto Spring Cloud, para desarrollar aplicaciones basadas en microservicios.

Contenido

  1. La Arquitectura de Microservicios
    • Que son los microservicios
    • Origen y motivación
    • Características distintivas
    • Principios
    • Proceso de desarrollo
    • Virtualización y alta disponibilidad
  2. Cómo modularizar
    • Riesgos e implicaciones
    • Técnicas
  3. Estrategias de Integración y colaboración entre Microservicios
    • Diseño de colaboraciones entre microservicios
    • Orquestación usando APIs web
    • Coreografía utilizando un Message Broker
  4. Escalamiento y Resiliencia
    • Arquitectura Arquetípica
    • Instancias múltiples de servicios en Spring Boot
    • Registro y descubrimiento dinámico de servicios e instancias
    • Balanceo de carga
    • Tolerancia a fallas
    • Monitoreo
  5. Gateways para centralizar peticiones
  6. Configuración centralizada
    • Uso de un servidor de configuración
    • Versionamiento de configuraciones

V. Seguridad Web con Spring Security (40 horas)

Las aplicaciones y APIs web deben estar protegidas de intrusos y de amenazas. Spring ofrece un kit de componentes no intrusivos que permiten implementar mecánicas de autenticación, autorización y filtrado de peticiones con poco código. Este módulo enseña a proteger aplicaciones y APIs usando los componentes incluidos en Spring Security.

Contenido

  1. Fundamentos de Spring Security
    • Arquitectura general usada por Spring Security
    • Configuración básica
    • Fundamentos de Autenticación
    • Fundamentos de Autorización
  2. Autenticación con base de datos
    • Implementación de la Autenticación usando JDBC
    • Uso de la Autenticación JPA / UserDetails
    • Bases de datos separadas para seguridad y para aplicación
  3. La cadena de filtros de seguridad
    • Arquitectura de la cadena de filtrado
    • Filtros relevantes
  4. Contraseñas y encriptado
    • Evolución en las contraseñas
    • Cifrado de contraseñas
    • Algoritmos de cifrado soportados en Spring Security
    • Validación de contraseñas
  5. Tokens JWT
    • Conceptos centrales
    • API jjwt
  6. Uso de JWT en Spring Security
    • Implementación de la Autenticación
    • Filtrado de peticiones no autenticadas
    • Cadenas de filtrado múltiples
  7. OAuth 2.0
    • Qué es el OAuth 2.0 Authorization Framework
    • Qué es el OPENID Connect
    • Personalización de Formulario login
  8. Monitoreo de Autenticaciones
    • Acceso a datos de usuario y declaraciones en tokens OAuth
    • Eventos de autenticación
  9. Autorización a nivel método
    • Anotaciones de configuración
    • Personalización de respuestas a accesos denegados
  10. Personalización de páginas de error