Antes de empezar

1

Pasos para aprender Java Spring

2

¿Java sigue siendo gratuito?

3

Instalación de ambiente de desarrollo: Linux Ubuntu

4

Instalación de ambiente de desarrollo: macOS

5

Instalación de ambiente de desarrollo: Windows

Introducción a Spring boot

6

¿Qué es y qué usaremos de Spring?

7

Conocer qué es una aplicación autocontenida

8

Crear nuestra aplicación con Spring Initializr

9

Hola mundo con Spring Boot

10

Configurar Spring Boot

11

Crear la estructura del proyecto

Spring Data

12

¿Qué es JPA?

13

Conocer qué es Spring Data

14

Conectar la base de datos a nuestra aplicación

15

Mapear las tablas como clases

16

Crear Entity cuando su clave primaria es compuesta

17

Mapear relaciones entre clases

18

Usar la interface CrudRepository

19

Query Methods

Construyendo nuestra API

20

Implementar la anotación @Repository

21

¿Qué es el patrón Data Mapper y qué resuelve?

22

Orientar nuestra API al dominio con MapStruct

23

Orientar nuestro repositorio a términos del dominio

24

Inyección de dependencias

25

Implementar la anotación @Service

26

Implementar la anotación @RestController

27

Exponer nuestra API

Mejorando nuestra API

28

Controlar las respuestas HTTP

29

Crear el dominio de compras

30

Mapear el dominio de compras

31

Crear el repositorio de compras

32

Probando nuestros servicios de compras

33

Documentar nuestra API con Swagger

Spring Security

34

Configurar la seguridad de nuestra API con Spring Security

35

Generar un JWT

36

Autenticación con JWT

37

Autorización con JWT

Despliegue de nuestra aplicación

38

Desplegar nuestra API desde la ventana de comandos

39

Desplegar nuestra base de datos con Heroku

40

Desplegar nuestra API con Heroku

41

Conclusiones y despedida del curso

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Curso de Java Spring

Curso de Java Spring

Alejandro Ramírez

Alejandro Ramírez

Conocer qué es Spring Data

13/41
Recursos

Aportes 24

Preguntas 4

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Regístrate o inicia sesión para participar.

Mis apuntes:

Conocer qué es Spring Data

Spring Data NO es una implementacion de JPA, sino mas bien es un proyecto que usa JPA para ofrecer funcionalidaes extra en la gestion de tareas desde JAVA a las base de datos.

Spring Data internamente tiene varios subproyectos, entre ellos: Spring Data JPA y Spring Data JDBC, para conectarnos a BD relacionales (SQL). Spring Data MongoDB y Spring Data Cassandra, son proyectos para conectarnos a BD no relacionales.

La tarea principal de Spring Data es optimizar tareas repitivas.

Spring data nos provee de respositorios sin codigo, nos permiten hacer todo tipo de operaciones en BD (CRUD) sin utilizar una linea de código.

También nos provee de auditorías transparentes, por ello, posee un motor de auditorias que nos permite saber cuadno se insertó un registro, cuando se borró, cuando se actualizo en la BD, etc.

<h3>Implementación en el proyecto Market.</h3>

Se busca en MAVEN el repositorio Spring Boot Starter Data JPA, se copia el group y el name en las dependencias del archivo build.gradle de nuestro proyecto quedando de la siguiente manera.

dependencies {
    //Dependencia agregada
	implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
	
    implementation 'org.springframework.boot:spring-boot-starter-web'
	testImplementation('org.springframework.boot:spring-boot-starter-test') {
		exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
	}
}

Esta repetido el paso para implementar Data JPA al proyecto, la primera con

org.springframework.data:spring-data-jpa

y la segunda con

org.springframework.boot:spring-boot-starter-data-jpa

¿Las dos formas son correctas o es error de edición del vídeo?

Para los que están utilizando Maven en vez de Gradle, aquí el código que deben agregar a sus dependencias en el pom.xml para importar Spring Data JPA.

<dependency>
	<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId></dependency>

El video tiene una edición de video incorrecta, se repite el mismo paso para 2 formas distintas de agregar Spring Data JPA, la correcta es la SEGUNDA manera (inicia en el minuto: 4:35).
Aquí pueden ver la diferencia de ambas maneras: https://stackoverflow.com/questions/44768112/difference-between-spring-data-jpa-and-spring-boot-starter-data-jpa

Muchas gracias profe que buena forma de explicar

vamos bien, esto si lo he visto en las compañías que se trabaja java con spring pero no había encontrado algo relacionado y hasta el momento bien explicado

Spring Data es un proyecto que tiene otros sub-proyectos que ayudan a los desarrolladores en manejo de bases de datos y Boiler Plate

Spring Data Toma 2 y Final: Esta es la forma correcta en la cual se agrega Spring Data en nuestra aplicación

Tengo una duda, se agregó la dependencia de Spring Data JPA, pero no veo la manera de que en archivo build.gradle se especifique la versión. Se me ocurre es porque en una versión diferente el nombre o el grupo tienen un nombre diferentes?

Me gusta la forma de explicar del profesor

Alejandro es muy buen profe!

Hola, a mi no me sale la consola ‘Run’ como al instructor, alguien sabe como hacer para habilitar esa vista? si tiene algún nombre especifico?

Perfecto…

Spring Data Toma 1: Parece ser que está el paquete no se llama de esa manera, pasar al otro marcador para ver el correcto

Manera sencilla de implementar Setter y Getter

El código es mas limpio y fácil de leer
Toda la clase es como se ve en la imagen (Así de sencillo)

  • O Lo implementan de esta manera

  • Y luego incluyen las anotaciones @Setter y Getter para generar los metodos

Agregué un par de marcadores públicos al Vídeo, para saltarnos un pequeño error de edición 💚

https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-jpa/2.3.4.RELEASE

implementation ‘org.springframework.boot:spring-boot-starter-data-jpa’

Como se puede especificar la versión de spring-boot-starter-data-jpa??

deberían de corregir este video, muestra otra dependencia demás en el minuto 2

Bastante completo hasta el momento la configuración para crear un excelente proyecto.

Se parece mucho a EntityFramework, estaría genial que tuviera un gestor de paquetes estilo nuget

me aparece esto
Execution failed for task ‘:PlatziMarketApplication.main()’.

Process ‘command ‘C:/Program Files/AdoptOpenJDK/jdk-11.0.6.10-hotspot/bin/java.exe’’ finished with non-zero exit value 1
ayuda

alguien entendió algo?