Construir una Aplicación de Spring Boot con MySQL y Docker

Construir una Aplicación de Spring Boot con MySQL y Docker

Crear una API CRUD RESTful con Spring Boot con Spring 2 + JPA y con la base de datos MySQL. crearemos una imagen docker y ejecutaremos la imagen de la aplicación como un contenedor docker.

Por lo tanto diseñaremos una solución de gestión de usuarios donde realizaremos un CRUD sobre la base de datos.

Transcript

  1. Construir una Aplicación Spring Boot con MySQL y Docker Geovanny

    Mendoza @geovanny0401
  2. Agenda Spring Boot Spring Data Demo Spring Rest

  3. Acerca de mí Certificado en Vaadin 14 Developer Jug Leander

    12+ de experiencia Ing. Sistemas Especialista en Ing. Software Desarrollador Backend en S4N Blog: http://geovanny0401.blogspot.com/
  4. Tecnología a Utilizar

  5. Perspectiva Global

  6. Introducción a Spring Boot

  7. Spring Framework (1/2) • Es un framework de desarrollo de

    aplicaciones empresariales basado en tecnología Java. • El objetivo fundamental de Spring es simplificar el Desarrollo Java ◦ La primera versión fue escrita por Rod Johnson y descrita en su libro Expert One-on-One J2EE Design and Development (Octubre 2002) • Versión estable: 5.2.5 (24 de Marzo 2020)
  8. • Proyectos de Spring, estos son algunos: Spring Framework (2/2)

    • https://spring.io/projects 8 • • • • • • • • •
  9. Spring Boot (1/3) • Es una herramienta que simplifica la

    configuración y la velocidad en el desarrollo de aplicaciones basadas en el framework Spring Core. • Incorpora Tomcat or Jetty dentro de la aplicación. • Versión estable: 2.2.6 • No hay configuración XML • Soporta a Maven y Gradle
  10. • Aplicaciones que se pueden Construir: Spring Boot (2/3) 10

  11. Spring Boot (3/3) • Empresa que utilizan Spring Boot:

  12. • Actualizar el código spring heredado, puede ser bastante difícil.

    Desventajas Spring Boot 12 • La falta de control que tienen sobre Spring Boot. • No es recomendable para aplicaciones monolíticas.
  13. • Spring boot se centra en acortar la longitud del

    código y en proporcionar una forma fácil de ejecutar su aplicación Spring Diferencia de Spring Boot con Spring Framework • Spring es flexible a través de su característica de inyección de dependencia. • Soporta el marco JDBC, que mejora la productividad y reduce los errores.
  14. 14 start.spring.io

  15. None
  16. Estructura del proyecto

  17. Modelo

  18. Repositorio

  19. Servicio

  20. Controlador

  21. Introducción a Spring Data JPA

  22. Spring Data (1/4) • JPA: La técnica para convertir datos

    del sistemas de tipos de un lenguaje orientado a objetos y el modelo relacional de la base de datos se conoce como mapeo objeto relacional (ORM, Object Relational Mapping) • JPA (Java Persistence API) es la especificación de ORM para Java. • Implementar JPA • Hibernate: http://hibernate.org/ • Toplink: https://www.oracle.com/technetwork/middleware/toplink/overview/index.html
  23. Spring Data(2/4) Objetos Tablas • Relación: 23

  24. Spring Data(3/4) Spring Boot nos permite usar la dependencia de

    Spring Data de manera más fácil. El proyecto Spring Data ofrece mecanismos para simplificar el acceso a diferentes bases de datos: Spring Data JPA, Spring Data MongoDB, Spring Data JDBC extensions…. 24
  25. Spring Data(4/4) La principales funcionalidades de Spring Data JPA son:

    • Conversión automática entre objetos Java y el esquema de la base de datos. • Creación de consultas en base a métodos en interfaces. 25
  26. Spring REST

  27. 27 REST (1/3) • REST (Representational State Transfer) es un

    ESTILO de Arquitectura a la hora de realizar una comunicación entre cliente y servidor. • Uso del protocolo HTTP para realizar operaciones CRUD en recursos remotos. • Métodos envíos: ▪ GET ▪ POST ▪ PUT ▪ DELETE ▪ PATCH (Modifica parcial de un recurso)
  28. REST(2/3) Se utiliza para la codificación de información de los

    servicios REST pero también se puede usar XML. A los servicios web que siguen la arquitectura REST se conocen como RESTful. 28 Se usan los códigos de respuesta HTTP (200 OK, 500 Error) como resultado de las operaciones.
  29. 29 REST (3/3) • JSON (JavaScript Object Notation), es un

    formato ligero para almacenar o enviar información estructurada. • JSON - Ejemplo POST GET
  30. Código en vivo! • Crear API • Consumir Servicio

  31. • https://spring.io/projects/spring-framework • https://stackoverflow.com/questions/44785585/how-to-delete-all-docker-local-docker-images • https://medium.com/codefountain/develop-a-spring-boot-and-mysql-application-and-run-in-docker-end-to-end-15b7cdf3a2ba • https://mkyong.com/docker/docker-spring-boot-examples/ • http://geovanny0401.blogspot.com/2018/08/construir-una-aplicacion-web-con-vaadin.html

    Código Demo • https://github.com/Geovanny0401/charlas/tree/master/Cafeto Paso a paso Tutorial • https://github.com/Geovanny0401/charlas/blob/master/Cafeto/Guia%20Taller%20Spring-boot.pdf
  32. Pregunta! Contacto! @Geovanny0401 https://www.linkedin.com/in/gmendozag/ Presentación https://speakerdeck.com/geovanny0401 Código https://github.com/Geovanny0401