Spring Boot 3 - Desarrollo web con Spring Framework y MySQL8

Aprende desarrollo web con Spring Boot 3, Spring MVC, Spring Security, Spring Data JPA y MySQL con Deployment en Linux.

Ratings: 4.44 / 5.00




Description

⭐⭐⭐⭐⭐  ACTUALIZACIÓN DE CONTENIDO MARZO 2023   ⭐⭐⭐⭐⭐

SE HA ACTUALIZADO TODO EL CONTENIDO, CODIGO FUENTE DE LOS PROYECTOS DESARROLLADOS Y LOS VIDEOS PARA TRABAJAR CON LA VERSION DE SPRING BOOT 3 .

⭐⭐⭐⭐⭐  ACTUALIZACIÓN DE CONTENIDO (JUNIO 2021)  ⭐⭐⭐⭐⭐

Se agregó nuevo contenido al curso (18 nuevas lecciones). El deployment de aplicaciones Spring Boot en un servidor Linux es uno de los contenidos mas solicitados por los alumnos y por tal motivo se agregó una nueva sección donde el alumno aprenderá a configurar un servidor Linux en la nube con el sistema operativo Ubuntu Server 20.04 LTS y además dejará instalada la aplicación de empleos lista para ser usada desde Internet.


¿ESTA ACTUALIZADO EL CURSO?

Este curso esta desarrollado con SPRING BOOT 2. El framework de Spring es un proyecto en constante evolución. POR ESTA RAZÓN TODO EL CÓDIGO FUENTE DESARROLLADO DURANTE EL CURSO ES TESTEADO CONTINUAMENTE CON LAS NUEVAS VERSIONES DE SPRING BOOT (RELEASE). En el caso de que alguna lección requiera ser actualizada, el video será actualizado para que funcione con la nueva versión de Spring Boot.

INTRODUCCIÓN

En este curso vas aprender a desarrollar Aplicaciones Web Profesionales y RestFul Web Services utilizando el framework más popular de Java Spring Boot 2. Aprenderás a usar Spring MVC para la funcionalidad de tu Aplicación Web, para el desarrollo de la capa de datos aprenderás a utilizar el módulo Spring Data JPA. Te enseñaré a integrar el framework más popular de persistencia de datos Hibernate para implementar el API de JPA. Finalmente, aprenderás Spring Security para implementar la seguridad de tus aplicaciones web.

BENEFICIOS DE TOMAR ESTE CURSO

Al terminar este curso tendrás en tu Curriculm Vitae el manejo de Spring Framework 5 & Spring Boot 2 y te ayudará a encontrar un empleo fácilmente o mejorar tu posición actual. Casi para cualquier trabajo relacionado con desarrollo web con Java, es necesario tener estas habilidades. Este curso te ayudará a aprender estas dos tecnologías de una forma muy rápida porque vamos a desarrollar un proyecto real para aplicar todos los conceptos que veremos a lo largo del curso. 

HABILIDADES Y CONOCIMIENTOS QUE APRENDERÁS A LO LARGO DEL CURSO

Spring Boot

  1. Crear proyectos Spring Boot con Spring Initializr & Spring Tools 4.

  2. Desarrollar Aplicaciones Web con Spring Boot.

  3. Desarrollar RestFul Web Services con Spring Boot.

  4. Conocer la estructura de un proyecto Spring Boot.

  5. Configurar parámetros de Spring Boot.

Spring MVC

  1. Comprender la arquitectura de Spring MVC.

  2. Comprender el ciclo de vida de las peticiones HTTP en Spring MVC.

  3. Aplicar Spring MVC en aplicaciones web. Para esto utilizaremos clases JavaBeans como componentes de Modelo, Thymeleaf para la Vista y finalmente los Controladores.

  4. Aplicar una arquitectura de 3 capas (presentación, negocio, persistencia) en tus aplicaciones web.

  5. Desarrollar la capa de negocio con clases de servicio y la anotación @Service. Aprenderás a diseñar tus clases de servicio con INTERFACES para que tus clases de servicio tengan bajo aclopamiento y sean fáciles de mantener.

  6. Comprender la Inyección de Dependencias (@Autowired).

  7. Crear controladores con @Controller.

  8. Manejo de Peticiones HTTP GET & HTTP POST: @RequestMapping, @GetMapping, @PostMapping.

  9. Definir URI dinámicas con @PathVariable.

  10. Comprender el Data Binding entre clases de modelo y formularios HTML.

  11. Recibir datos de formularios HTML con @RequestParam.

  12. Subida de archivos al servidor (Upload Files).

  13. Integrar las vistas con Thymeleaf.

  14. Manejo de errores en formularios HTML (BindingResult).

  15. Declarar redirecciones y definir Redirect Attributes.

  16. Formularios HTML de búsqueda.


Thymeleaf

  1. Integrar Thymeleaf en proyectos Spring Boot para las vistas de tu aplicación web.

  2. Iteraciones con th:each.

  3. Condicionales th:if, th:unless, Elvis Operator (?:)

  4. Configuración de recursos estáticos (Javascript, CSS, Images).

  5. Integración del framework Front-End Bootstrap.

  6. Integración de plantillas HTML.

  7. Thymeleaf Page Layouts & Fragments.


Spring Data JPA

  1. Integrar Spring Data JPA con Spring Boot.

  2. Configurar el Datasource de conexión a MySQL 5.7 & 8.0

  3. Configuración de clases Entity (@Entity, @Table, @Id, @Column).

  4. Configuración de Relaciones (@OneToOne @OneToMany, @ManyToOne).

  5. Definición de Repositorios con las interfaces (@CrudRepository, @JpaRepository).

  6. Declaración de Query Methods con @Query.

  7. Creación de consultas Query By Example (QBE).

  8. Desarrollar la capa de persistencia utilizando Spring Data JPA.

  9. Inyectar los repositorios en las clases de servicio (@Autowired).

Spring Security

  1. Integrar Spring Security con Spring Boot.

  2. Configurar Spring Security para leer los datos de los usuarios y roles de MySQL.

  3. Definir seguridad por patrones de URLs.

  4. Aplicar seguridad a tus aplicaciones web con Spring Security.

  5. Desarrollar un formularion de Login personalizado.

RestFul Web Services

  1. Crear controladores con @RestController.

  2. Anotación @ResponseBody

  3. Anotación @RequestBody.

  4. Manejo del cliente REST Postman.


EL PROYECTO FINAL

A lo largo del curso vamos a desarrollar una APLICACIÓN WEB REAL COMPLETAMENTE FUNCIONAL. Esta aplicación no es la típica aplicación donde solo te enseñan ha realizar el CRUD de una tabla de contactos. En la vida real nunca te van a pedir que desarrolles una aplicación asi de sencilla. Por esta razón he decido aplicar todos los conceptos que veremos a lo largo de curso en el desarrollo de una aplicación más compleja. Durante el desarrollo de esta aplicación veremos muchas técnicas y funcionalidades que si te ayudarán en un proyecto real en tu trabajo.

¿Qué proyecto desarrollaremos?

El proyecto que vamos a desarrollar es una aplicación web para publicar ofertas de trabajo en Internet. Esta aplicación esta estructurada en dos secciones principales:

  • Front-End: Esta es la parte pública de la aplicación y estará abierta al público en general. En la página principal se mostrarán las ofertas de trabajo mas destacadas que han sido publicadas por un administrador. En la página principal también se encuentrá un formulario para buscar ofertas de trabajo por Descripción y por Categorías. Al hacer clic en una oferta de trabajo se mostrarán los detalles de esta vacante. Estos detalles son por ejemplo: fecha de publicación, salario ofrecido, detalles de la vacante (requisitos, requerimientos, prestaciones ofrecidas, datos de contacto, etc. En la página de los detalles de una vacante existirá un botón para que el usuario, siempre y cuando haya iniciado sesión pueda enviar si Curriculm Vitae para aplicar para la Vacante. Finalmente, en la página principal de la aplicación también existirá un botón para que los usuarios puedan registrarse en la aplicación.

  • Back-End: Esta es la parte privada de la aplicación y únicamente tendrán acceso los administradores. En esta sección los administradores podrán administrar la aplicación. Básicamente existirán 3 tipos de usuarios o roles: SUPERVISOR, ADMINISTRADOR y USUARIO. El SUPERVISOR tendrá acceso al catálogo de vacantes, categorías y solicitudes enviadas. El ADMINISTRADOR tendrá acceso al catálogo de vacantes, categorías, solicitudes enviadas y el catálogo de usuarios registrados. El USUARIO solo tendra permisos para Aplicar (enviar Curriculum Vitae) para una determinada Vacante.

Como puedes ver esta aplicación esta muy completa, por lo tanto vas a aprender muchas técnicas y conocimientos que podrás aplicar para tus propios proyectos.

What You Will Learn!

  • Configurar un servidor Linux en la nube con Ubuntu Server 20.04 LTS, Java 11 y MySQL 8 para hacer el deployment de tus aplicaciones Spring Boot.
  • Aprenderás a desarrollar Aplicaciones Web con Spring Boot, Spring MVC, Thymeleaf, Spring Data JPA, Spring Security y MySQL 8.
  • Aprenderás a desarrollar RestFul Web Services con Spring Boot, Spring Data JPA y MySQL 8.
  • Aprenderás a usar Thymeleaf para crear las vistas de tu aplicación web.
  • Spring MVC: Configuration, DispatcherServlet, Controllers, Data Binding, Formularios HTML, File Upload, Manejo de Errores, etc.
  • Spring Security: Implementar seguridad basada en usuarios y roles en tus aplicaciones web.
  • Configurar Spring Security para leer los usuarios desde una base de datos MySQL 8.
  • Spring Data JPA: @Repository, @CrudRepository, @JpaRepository, @Query, Query Methods, Query by Example, etc.
  • Desarrollar la capa de servicio con interfaces y la anotación @Service.
  • Implementar el API de JPA con Hibernate.
  • Aplicar el patrón de diseño MVC en tus aplicaciones web.
  • Aprenderás a aplicar una arquitectura de 3 capas (presentación, negocio y datos) a tus aplicaciones web.
  • Integrar plantillas HTML basadas en Bootstrap en tus aplicaciones web.

Who Should Attend!

  • Curso dirigido a estudiantes, profesionales o programadores en general que quieren aplicar Java para desarrollar aplicaciones web con Spring Boot 2 y Spring Framework 5.