What you'll 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 3.
- Desarrollar aplicaciones web con Spring Boot 3, Thymeleaf, Spring Data JPA (Hibernate & MySQL 8) y Spring Security.
- Desarrollar aplicaciones web con Spring MVC, JSP, Spring Data JPA (Hibernate & MySQL) y Spring Security.
- Desarrollar RestFul Web Services con Spring Boot 3, Spring Security y Spring Data JPA (Hibernate & MySQL)
- Aprenderás a desarrollar una aplicación web con Spring 6 en Windows, sin embargo el deployment de tu aplicación web en un servidor Linux en la nube.
- Spring MVC: Configuration, DispatcherServlet, Controllers, Data Binding, Form Tag Library, File Upload, Root ApplicationContext, etc.
- Spring Data JPA: Configuration, CrudRepository, JpaRepository, Query Methods, etc.
- Spring Security: Implementar seguridad basada en usuarios y roles en tus aplicaciones web.
- Desarrollar la capa de servicio con interfaces y la anotación @Service.
- Implementar el API de JPA con Hibernate en conjunto con Spring Data JPA.
- Aplicar una arquitectura de 3 capas (presentación, negocio y datos) a tus aplicaciones web.
- Aplicar el patrón de diseño MVC en tus aplicaciones web.
- Integrar plantillas HTML basadas en Bootstrap en tus aplicaciones web.
- Configurar el administrador de aplicaciones de Apache Tomcat para publicar tus aplicaciones web.
- Comprar y configurar un servidor Linux VPS (Virtual Private Server) con el proveedor de hosting Linode.
- Comprar un dominio real en Godaddy y configurarlo con la dirección IP pública de tu VPS.
- Configurar Spring Security para leer los usuarios desde una base de datos MySQL.
- Encriptar passwords con el algoritmo BCrypt.
⭐⭐⭐⭐⭐ 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 VERSIONES ⭐⭐⭐⭐⭐
TODO EL CÓDIGO FUENTE Y LA DOCUMENTACIÓN DEL CURSO HAN SIDO PROBADAS CON LAS SIGUIENTES VERSIONES (MARZO 2023):
JDK 17 LTS
Spring Boot 3.0.3
Spring Framework 6.0.5
Spring Data JPA 3.0.1
Spring Security 6.0.2
MySQL 8.0.32
Deployment en Ubuntu 20.04 LTS
⭐⭐⭐⭐⭐ ACTUALIZACIÓN DE CONTENIDO ⭐⭐⭐⭐⭐
Se agregó nuevo contenido al curso (21 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.
ALUMNOS SATISFECHOS DE ESTE CURSO:
⭐⭐⭐⭐⭐ - Guillermo Ivan Tabera Bazan
El curso es muy completo, yo no sabía nada de spring, gracias a que está bien explicado, le dedique tiempo y mucha práctica aprendi sin dolor.
En mi caso logré obtener un empleo para desarrollar en spring con mejores ingresos.
⭐⭐⭐⭐⭐ - Danielo De León
Excelente curso, y excelente profesor, todo muy bien explicado, los videos muy didácticos tanto desde el punto de vista práctico como teórico, las clases se me hicieron muy amenas y en todo momento a lo largo del curso me sentí muy motivado para continuar hasta finalizarlo.
En la parte de spring boot, si bien ya tenía algunos conocimientos me sirvió tanto para reforzar como para aprender cosas nuevas y la parte de spring mvc con xml se me hizo muy amigable comparado con otro curso que había hecho hace un tiempo en que me parecía todo muy complicado y tedioso.
Muchas gracias por el curso, y un fuerte abrazo desde Uruguay!!
⭐⭐⭐⭐⭐ - Alex Leiva
Debo decir que este curso supero mis expectativas, secciones bien organizadas y el profesor contribuyo con su profesionalidad a que siguiera avanzando cada lección del curso. Había tomado unos tutoriales anteriormente de spring pero me parecía muy complejo y termine frustrado. Ahora comprendí el flujo que usa el framework y como funciona, estoy muy feliz, nada mas que decir, gracias Profesor Ivan :).
⭐⭐⭐⭐⭐ - Carlos Alberto Pérez Vallés
Es un curso muy completo y muy bien explicado por parte del profesor.
El ejemplo de la aplicación del cine, a lo largo de los capítulos, ayuda muchísimo a comprender los conceptos fundamentales de spring y las necesidades que se pueden presentar en un proyecto real.
Se explican muchísimos detalles a nivel de Spring, Servlet API, Tomcat, Linux. Incluso a nivel de VPS para publicar la aplicación y que esté accesible en Internet.
Mi más sincera enhorabuena al profesor, por su forma de explicar los temas y su disponibilidad a resolver todas las dudas. Muchas gracias.
⭐⭐⭐⭐⭐ - Jonathan Robles
Excelente Curso
A travez de los años he trabajado en Java SE y he utilizando algunos de los frameworks mas utilizados de spring, struts y demas, puedo decir que este es sin duda el mejor curso que he llevado en relacion a spring mvc, jpa.
Estoy mas que satisfecho con la parte de spring security asi como poder publicar la pagina web en un servidor de aplicaciones real.
El profesor muestra conocimiento de los temas ademas de que realmente resuelve las dudas que se van generando.
⭐⭐⭐⭐⭐ - Arturo Ramirez Camino
Excelente curso, muy bien estructurado y ha cumplido todas mis expectativas hasta el punto de haber desarrollado sin problemas una aplicación paralela a la explicada por el profesor. Lo recomiendo sin duda.
⭐⭐⭐⭐⭐ - Faiber Juanias
Estoy muy interesado también en aprender más de Linux, y este curso me dio también lo necesario para publicar mis aplicaciones creadas con Spring MVC. Definitivamente excelente curso, y muchas gracias!
⭐⭐⭐⭐⭐ - Marcos
Buenas, muy buen curso, se entiende todo a la perfección.
Método de aprendizaje excelente, aplicando todos los conocimientos sobre un mismo proyecto, el cual al final del curso será una aplicación completamente funcional. De esta forma se entiende todo mucho mejor y se tiene una visión clara de la utilidad de cada cosa.
Muchas gracias por el curso !
Un saludo desde España
⭐⭐⭐⭐⭐ - Ignacio Jimenez Barco
Curso muy completo y maravillosamente bien explicado. Impecable pedagogía y conocimientos los del formador, pues se nota el cuidado que poner en explicar y dejar bien claros los conceptos.
El enfoque práctico, lo hacen aún más atractivo y cómodo para afianzar y comprender la materia.
Además la velocidad de respuesta es muy alta, prácticamente en el día, lo cual es de agradecer.
En resumen: un curso muy recomendable para tener contacto con Spring.
⭐⭐⭐⭐⭐ - Arturo Castro
Es mi primer curso en Udemy y por el precio que he pagado por este contenido supera mis expectativas, contenido muy abundante con nuevas tecnologías
⭐⭐⭐⭐⭐ - Jonny Lozano
El curso es muy bueno, el profesor tiene basta experiencia en el tema, ha actualizado el curso con contenido que ni siquiera estaba planeado y además lo que no se ve en el curso, en las respuestas que da en las preguntas de los usuarios, hay información que aunque no aplica al curso, aún así responde y dan aún más conocimiento.
⭐⭐⭐⭐⭐ - Pablo Arcones
Muy buen curso para iniciarse y aprender en profundidad el desarrollo de aplicaciones web con spring. Aprendes de todo, tanto a nivel teorico como práctico. Supera las espectativas que tenia con creces!!
⭐⭐⭐⭐⭐ - David Ruiz
Excelente, muy didáctico, recomendado a todos aquellos profesionales que se estén iniciando en el maravilloso mundo de Spring Framework
⭐⭐⭐⭐⭐ - Leo Bollini
Excelente curso para empezar de 0, todo el tiempo desde q estoy veo que el instructor actualiza el material, y la vez que tuve que consultarlo no solo atendió la consulta, sino que ademas la resolvió y me explico el motivo en el cual fallaba en el mismo día de la consulta.
⭐⭐⭐⭐⭐ - Alvaro Bayon
Excelente curso. El instructor es muy didáctico, los contenidos están actualizados. Los videos son breves y claros. Es fácil aprender Spring con este curso.
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íasde 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
Crear proyectos Spring Boot con Spring Initializr & Spring Tools 4.
Desarrollar Aplicaciones Web con Spring Boot.
Desarrollar RestFul Web Services con Spring Boot.
Conocer la estructura de un proyecto Spring Boot.
Configurar parámetros de Spring Boot.
Spring MVC
Comprender la arquitectura de Spring MVC.
Comprender el ciclo de vida de las peticiones HTTP en Spring MVC.
Aplicar Spring MVC en aplicaciones web. Para esto utilizaremos clases JavaBeans como componentes de Modelo, Thymeleaf para la Vista y finalmente los Controladores.
Aplicar una arquitectura de 3 capas (presentación, negocio, persistencia) en tus aplicaciones web.
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.
Comprender la Inyección de Dependencias (@Autowired).
Crear controladores con @Controller.
Manejo de Peticiones HTTP GET & HTTP POST: @RequestMapping, @GetMapping, @PostMapping.
Definir URI dinámicas con @PathVariable.
Comprender el Data Binding entre clases de modelo y formularios HTML.
Recibir datos de formularios HTML con @RequestParam.
Subida de archivos al servidor (Upload Files).
Integrar las vistas con Thymeleaf.
Manejo de errores en formularios HTML (BindingResult).
Declarar redirecciones y definir Redirect Attributes.
Formularios HTML de búsqueda.
Thymeleaf
Integrar Thymeleaf en proyectos Spring Boot para las vistas.
Iteraciones con th:each.
Condicionales th:if, th:unless, Elvis Operator (?:)
Configuración de recursos estáticos (Javascript, CSS, Images).
Integración del framework Front-End Bootstrap.
Integración de plantillas HTML.
Thymeleaf Page Layouts & Fragments.
Spring Data JPA
Integrar Spring Data JPA con Spring Boot.
Configurar el Datasource de conexión a MySQL 5.7 & 8.0
Configuración de clases Entity (@Entity, @Table, @Id, @Column).
Configuración de Relaciones (@OneToOne @OneToMany, @ManyToOne).
Definición de Repositorios con las interfaces (@CrudRepository, @JpaRepository).
Declaración de Query Methods con @Query.
Creación de consultas Query By Example (QBE).
Desarrollar la capa de persistencia utilizando Spring Data JPA.
Inyectar los repositorios en las clases de servicio (@Autowired).
Spring Security
Integrar Spring Security con Spring Boot.
Configurar Spring Security para leer los datos de los usuarios y roles de MySQL.
Definir seguridad por patrones de URLs.
Aplicar seguridad a tus aplicaciones web con Spring Security.
Desarrollar un formulario de Login personalizado.
RestFul Web Services
Crear controladores con @RestController.
Anotación @ResponseBody
Anotación @RequestBody.
Manejo del cliente REST Postman.
A LO LARGO DE ESTE CURSO VAS A DESARROLLAR 2 APLICACIONES WEB REALES QUE TE SERVIRÁN COMO BASE PARA TUS PROPIOS PROYECTOS.
PROYECTO 1 (EmpleosApp)
¿Cual es la funcionalidad de la aplicación EmpleosApp?
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.
PROYECTO 2 (CineApp)
¿Cual es la funcionalidad de la aplicación CineApp?
El proyecto que vamos a desarrollar es una aplicación web para llevar la administración de un CINEMA. 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á la cartelera de películas que están en exhibición para la fecha actual. En la página principal también se encuentrá un formulario para buscar películas para otras fechas. Al hacer clic en una película se mostrarán los detalles de esta película. Estos detalles son los horarios (hora, sala, precio) disponibles para la fecha seleccionada y los datos generales de la película (imagen, título, actores, duracion, género, el video del trailer, la sinopsis, etc). Finalmente, en la página principal de la aplicación también se mostrará un pequeño blog con noticias relacionadas con el cine.
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 dos tipos de administradores o roles: EDITOR y GERENTE. El EDITOR tendrá acceso al catálogo de películas, catálogo de horarios y el catálogo de noticias (BLOG). El GERENTEtendrá los mismos accesos que los editores, pero tendrá acceso también para modificar el banner de la página principal.
Como puedes ver las 2 aplicaciónes están muy completas, por lo tanto vas a aprender muchas técnicas y conocimientos que podrás aplicar para tus propios proyectos.