Slide 1

Slide 1 text

Construir una Aplicación Spring Boot con MySQL y Docker Geovanny Mendoza @geovanny0401

Slide 2

Slide 2 text

Agenda Spring Boot Spring Data Demo Spring Rest

Slide 3

Slide 3 text

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/

Slide 4

Slide 4 text

Tecnología a Utilizar

Slide 5

Slide 5 text

Perspectiva Global

Slide 6

Slide 6 text

Introducción a Spring Boot

Slide 7

Slide 7 text

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)

Slide 8

Slide 8 text

• Proyectos de Spring, estos son algunos: Spring Framework (2/2) ● https://spring.io/projects 8 ● ● ● ● ● ● ● ● ●

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

• Aplicaciones que se pueden Construir: Spring Boot (2/3) 10

Slide 11

Slide 11 text

Spring Boot (3/3) ● Empresa que utilizan Spring Boot:

Slide 12

Slide 12 text

• 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.

Slide 13

Slide 13 text

• 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.

Slide 14

Slide 14 text

14 start.spring.io

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

Estructura del proyecto

Slide 17

Slide 17 text

Modelo

Slide 18

Slide 18 text

Repositorio

Slide 19

Slide 19 text

Servicio

Slide 20

Slide 20 text

Controlador

Slide 21

Slide 21 text

Introducción a Spring Data JPA

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

Spring Data(2/4) Objetos Tablas • Relación: 23

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

Spring REST

Slide 27

Slide 27 text

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)

Slide 28

Slide 28 text

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.

Slide 29

Slide 29 text

29 REST (3/3) ● JSON (JavaScript Object Notation), es un formato ligero para almacenar o enviar información estructurada. ● JSON - Ejemplo POST GET

Slide 30

Slide 30 text

Código en vivo! ● Crear API ● Consumir Servicio

Slide 31

Slide 31 text

• 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

Slide 32

Slide 32 text

Pregunta! Contacto! @Geovanny0401 https://www.linkedin.com/in/gmendozag/ Presentación https://speakerdeck.com/geovanny0401 Código https://github.com/Geovanny0401