Enfoque

Objetivo
El alumnado será capaz de entender los componentes de la arquitectura de Java Spring, configurar un entorno de programación con esta tecnología, y programar una aplicación que interactúe con una base de datos MySQL.
La realización de este curso permitirá dotar al alumnado de los conocimientos mínimos para, aplicando los principios aprendidos, poder desplegar en el futuro soluciones sofisticadas.
Dirigido a:
Desarrolladores de Software con un conocimiento previo del lenguaje de programación Java, así como conocimiento del manejo de algún entorno visual de programación (IDE).
Este curso es interesante tanto para programadores noveles como para desarrolladores experimentados en Java que quieran conocer las ventajas de la plataforma.
Requisitos:
Es muy recomendable que el alumnado tenga un conocimiento previo de algún entorno integrado de programación (IDE), como por ejemplo Eclipse o IntelliJ.
Es también esencial tener experiencia de al menos 1 año con el lenguaje de programación Java y conocimientos básicos de Git para poder gestionar el código que se utiliza en el curso.
Todo el material del curso se ha desarrollado sobre Windows 10.
Temario del curso
1 - La arquitectura de Java Spring
Objetivo
Al finalizar esta unidad el alumno estará familiarizado con la arquitectura de Java Spring y con los conceptos fundamentales sobre los que se apoya este entorno de desarrollo, tales como la inyección de dependencias y la inversión de control. El alumno también entenderá a alto nivel cuáles son los módulos principales de Spring y para qué se utilizan.
Duración de la unidad
4 Horas 40 Minutos
Contenido
1. La arquitectura de Java Spring
1.1. ¿De dónde viene Java Spring?
1.2. ¿Para qué tipo de proyectos es ideal Java Spring?
1.3. Ejemplo de una aplicación web en Java Spring
1.3.1. Repositorio Github de la aplicación Java spring del curso
1.3.2. Estructura de la aplicación
1.3.3. La aplicación Spring Web en acción
1.4. Beneficios de usar Java Spring
1.4.1. POJOs que se convierten en Java Beans
1.4.2. Diseño modular
1.4.3. Gestión de transacciones
1.5. Contenedores IoC
1.6. El poder de MVC
1.7. Testear es fácil con Java Spring Boot
1.7.1. Test-Driven Development (TDD)
1.7.1.1. Ejemplo
1.7.1.2. Creando Pruebas Unitarias en Java Spring
1.7.2. Continuamos con la prueba unitaria #2
1.8. ¿Qué es la inyección de dependencias?
1.8.1. La inyección de dependencias en Spring
1.8.1.1. Inyección a través de un método Setter
1.8.1.2. Inyección a través de un constructor
1.8.1.3. Testeo usando la inyección de dependencias con el Spring Container
1.9. ¿Qué es la inversión de control?
1.9.1. Inversión de control en Spring
1.10. Módulos principales de Java Spring
1.10.1. Core Container
1.10.2. Data Access
1.10.3. Web
1.10.4. AOP
1.10.5. Otros
1.11. Resumen
2 - Configurando el entorno de desarrollo de Java Spring
Objetivo
El alumno estará capacitado para configurar un entorno de Java Spring utilizando un entorno de desarrollo integrado, como primer paso para comenzar un proyecto de desarrollo de software.
Duración de la unidad
3 Horas 20 Minutos
Contenido
2. Configurando el entorno de desarrollo de Java Spring
2.1. Comprobando la instalación de Java
2.2. Instalando el IDE
2.2.1. Eclipse
2.2.2. IntelliJ
2.2.3. Spring Suite
2.3. ¿Es necesario instalar Tomcat o algún otro servidor Web?
2.4. Tomcat a lo clásico
2.5. Instalando los JAR de la aplicación con Maven
2.5.1. El POM.XML y las dependencias de la aplicación
2.5.2. Integración con Apache Maven
2.5.3. Más sobre Maven
2.5.3.1. Maven y Java Spring
2.5.4. Activación de Maven desde el IDE
2.6. Configurando y ejecutando la aplicación
2.7. Resumen
3 - Java Spring Beans, el ingrediente mágico de Java Spring
Objetivo
Entender las ventajas de encapsular y modelar el código utilizando Java Beans. Aplicar el modelaje de Java Beans a un caso real.
Duración de la unidad
4 Horas 25 Minutos
Contenido
3. Java Spring Beans, el ingrediente mágico de Java Spring
3.1. ¿Qué son los Java Spring Beans?
3.2. Añadiendo procesadores a los Beans
3.3. ¿Un Java Bean dentro de otro?
3.4. Procesadores de eventos en los Java beans
3.5. Heredando definiciones con Spring Beans
3.6. Inyectando dependencias en los Beans
3.7. Autocableando (autowiring) los Beans
3.7.1. Modos de autowiring
3.8. Spring y JDBC
3.8.1. JdbcTemplate Class
3.8.2. Configurando el "Data Source"
3.8.3. Data Access Object (DAO)
3.8.4. Ejecutando SQL
3.8.5. Ejecutando DDL Statements
3.9. AOP, Programación orientada a aspectos brevemente explicada
3.9.1. Business Object
3.9.2. Aspect
3.9.3. Joinpoint
3.9.4. Advice
3.9.5. Pointcut
3.9.6. Conectando el objeto de negocio con el aspecto
3.9.7. Configuración
3.10.Resumen
4 - Configuración de Java Spring con anotaciones
Objetivo
Entender y poner en práctica la ventaja de utilizar anotaciones para inyectar código en Java Spring con respecto a los problemas de utilizar XML para configurar el código.
Duración de la unidad
2 Horas 35 Minutos
Contenido
4. Configuración con anotaciones, la alternativa al XML
4.1.¿Qué son las anotaciones?
4.2. ¿Cómo se activan las anotaciones en Spring?
4.3. ¿Cuáles son las principales anotaciones y cómo se ponen en práctica?
4.3.1. @ComponentScan
4.3.2. @Configuration
4.3.3. @Bean
4.3.3.1. Usando los atributos de @Bean
4.3.4. @Component
4.3.5. @Autowired
4.3.6. @Repository
4.3.6.1. Un ejemplo de @Repository
4.3.7. ¿Qué se entiende por anotación @Qualifier?
4.4. Resumen
5 - Spring MVC, la herramienta de Java Spring para las aplicaciones web
Objetivo
El alumno aplicará las técnicas necesarias para escribir una aplicación de Java Spring basada en uno de los patrones de diseño (Design Pattern) más utilizado en proyectos de desarrollo web: el patrón MVC (Modelo, Vista y Controlador)
Duración de la unidad
2 Horas 45 Minutos
Contenido
5. Spring MVC
5.1. ¿Cuáles son los componentes de MVC?
5.2. ¿Cómo funciona MVC en la práctica?
5.3. Anotaciones de MVC
5.3.1. @RestController
5.3.2. @RequestMapping
5.3.3. @PathVariable
5.3.4. @RequestParam
5.3.5. @ModelAttribute
5.3.6. @RequestBody and @ResponseBody
5.3.7. @RequestHeader and @ResponseHeader
5.3.8. @CrossOrigin
5.4. Resumen
6 - Spring Boot y las aplicaciones basadas en Restful API´s
Objetivo
El alumno aprenderá a modelar y codificar una API Restful utilizando el patrón de diseño Spring Boot para acceder y actualizar datos en una Base de Datos MySQL
Duración de la unidad
4 Horas 35 Minutos
Contenido
6. Spring Boot y las aplicaciones Restful
6.1. ¿Qué es Spring Boot?
6.2. Estructura típica del código de Spring Boot
6.3. Y de nuevo los Spring Beans y la inyección de dependencias
6.3.1. SpringBootApplication
6.3.2. EnableAutoConfiguration
6.4. Bootstrapping
6.4.1. Configuración
6.4.2. Configuración de la aplicación
6.4.3. Vista simple de MVC
6.4.4. Security
6.4.5. Un poco de persistencia simple
6.4.6. Web y el Controlador
6.4.7. Gestión de errores
6.4.8. Testeo
6.5. Logging
6.5.1. Log Format
6.5.2. Console Log Output
6.5.3. File Log Output
6.5.4. Log Levels
6.6. Spring Boot Runners
6.7. Propiedades de la aplicación
6.8. RESTFUL APP
6.8.1. Entendiendo REST Spring
6.8.2. Configuración de Java
6.8.3. Usando Spring Boot
6.8.4. Testeando el contexto de Spring
6.8.5. Usando Spring Boot de nuevo
6.8.6. La controladora
6.8.7. Solicitudes sin asignar
6.8.8. Solicitudes asignadas válidas
6.8.9. Error del cliente
6.8.10. Usando @ExceptionHandler
6.8.11. Dependencias adicionales de Maven
6.8.12. Usando Spring Boot una vez más
6.8.13. Request Mapping
6.8.14. Request Body
6.8.15. Path Variable
6.8.16. Request Parameter
6.8.17. GET API
6.8.18. POST API
6.8.19. PUT API
6.8.20. DELETE API
6.9.Resumen
7 - Desarrolla una aplicación Web con Spring MVC y MySQL
Objetivo
Implementar una aplicación funcional, incorporando todas las técnicas aprendidas en el curso. Java Spring Beans, MVC, Restful APIs, conectando y persistiendo datos de una base de datos MySQL
Duración de la unidad
5 Horas
Contenido
7. Desarrolla una aplicación Web con Spring MVC y MySQL
7.1. ¿Qué es MySQL?
7.2. Instalando MySQL
7.3. Instalación de MySQL en Windows 10
7.3.1. Descargando MySQL
7.3.2. Proceso de instalación de MySQL en Windows 10
7.3.3. Configuración de MySQL
7.4. Conectando con el MySQL server desde MySQL Workbench
7.5. Operando con MySQL
7.6. Configurando Spring con MySQL
7.6.1. Añadiendo la dependencia en Maven
7.6.2. Conectando con la base de datos
7.7. Interactuando con la base de datos: JPA
7.8. Testeando la aplicación
7.8.1. Escribiendo el primer test
7.8.2. Base de datos embebida en memoria
7.8.3 Integración con Mockito
7.8.4. JUnit 5
7.9. Resumen
8 - Los proyectos de Java Spring: Spring Data, Spring Cloud, Spring Security, Spring Integration
Objetivo
Familiarizar al alumno con los proyectos más potentes y utilizados de Java Spring
Duración de la unidad
2 Horas 40 Minutos
Contenido
8. Los proyectos de Java Spring
8.1. Spring Data
8.2. Módulos principales
8.2.1. Data JDBC
8.2.10 Data JPA
8.2.3. Data MongoDB
8.2.4. Spring ElasticSearch
8.3. Spring Cloud
8.3.1. Características
8.3.2. Componentes
8.3.2.1. Eureka
8.3.2.2. Spring Cloud Config
8.3.2.3. Spring Cloud Security
8.3.2.4. Spring Cloud Contract
8.3.2.5. Ribbon
8.3.2.6. Feign
8.3.2.7. Hystrix
8.3.2.8. Zuul
8.4. Spring Security
8.4.1. Características
8.5. Spring Integration
8.5.1 Introducción
8.5.2. Características
8.6. Spring Session
8.6.1. Características
8.6.2. Módulos
8.6.3. Añadiendo Spring Session a tu build
8.6.4. Usando BOM con Maven
8.7. Resumen