Antes de empezar

1

Pasos para aprender Java Spring

2

Instalaci贸n de ambiente de desarrollo: Windows

3

驴Java sigue siendo gratuito?

4

Instalaci贸n de ambiente de desarrollo: Linux Ubuntu

5

Instalaci贸n de ambiente de desarrollo: macOS

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

Aprende todo un fin de semana sin pagar una suscripci贸n 馃敟

Aprende todo un fin de semana sin pagar una suscripci贸n 馃敟

Reg铆strate

Comienza en:

2D
21H
17M
22S
Curso de Java Spring

Curso de Java Spring

Alejandro Ram铆rez

Alejandro Ram铆rez

Crear la estructura del proyecto

11/41
Recursos

Aportes 19

Preguntas 14

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

馃 Hay una manera m谩s 谩gil de crear los paquetes en IntelliJ sin la necesidad de usar el mouse. Esto les puede ser 煤til en el futuro. 馃 Pero requiere una configuraci贸n extra. 馃憖

Lo primero que hay que hacer es ir a 鈥淪ettings -> keymap鈥 y buscan la opci贸n Navigate.

Si no les funciona, pueden agregar una nueva entrada dandole click derecho.

Si como yo est谩n usando un teclado en espa帽ol les recomiendo colocar una nueva entrada con la 帽.

No olviden darle click en 鈥楢plicar鈥.

El siguiente paso es el shortcut de crear un nuevo archivo. Para esto igual se van a 鈥楽ettings -> keymap鈥 y buscan file.

En mi caso volv铆 a usar la 脩.

No olviden darle en 鈥楢pply鈥. 馃憖

Por 煤ltimo hacemos esto mismo pero con el atajo de crear paquetes.

Damos 鈥楢pply鈥 馃憖

Y listo, ahora pueden usar ambos para crear nuevos archivos y paquetes sin necesidad de usar el mouse. 馃榾

Simplemente navegamos a donde queremos agregarlo. (Alt + 脩 )

Y despu茅s creamos el paquete. (Shift + 脩)

Todo esto lo aprend铆 en un webinar de Jetbrains, lo pueden ver aqu铆:

https://youtu.be/x8y_6Gg28GI?t=780

Espero que a alguien le sea de utilidad. 馃 馃殌 馃挌

La estructura del proyecto ser谩 de la siguiente manera:

1. DOMINIO:

  • DTO y objetos del dominio (Contexto de la aplicaci贸n)
  • Servicios: Puente entre los controladores y la capa de persistencia.
  • Especificaci贸n de repositorios: Interfaces que determinan las reglas que debe cumplir la persistencia para actuar entre los objetos de dominio y la DB.

2. WEB:

  • Controladores de API Rest.

3. PERSISTENCIA:

  • Repositorios: Implementan las especificaciones que tiene la capa de DOMINIO.
  • Entities: Mapean y act煤an como tablas de la DB.

Para el perezoso: mkdir -p domain/{dto,repository,service} persistance/{entity,crud} web/controller

.
鈹溾攢鈹 paltzi-market.iml
鈹溾攢鈹 pom.xml
鈹溾攢鈹 src
鈹偮犅 鈹溾攢鈹 main
鈹偮犅 鈹偮犅 鈹溾攢鈹 java
鈹偮犅 鈹偮犅 鈹偮犅 鈹斺攢鈹 com
鈹偮犅 鈹偮犅 鈹偮犅     鈹斺攢鈹 platzi
鈹偮犅 鈹偮犅 鈹偮犅         鈹斺攢鈹 market
鈹偮犅 鈹偮犅 鈹偮犅             鈹溾攢鈹 domain
鈹偮犅 鈹偮犅 鈹偮犅             鈹偮犅 鈹溾攢鈹 dto
鈹偮犅 鈹偮犅 鈹偮犅             鈹偮犅 鈹溾攢鈹 repository
鈹偮犅 鈹偮犅 鈹偮犅             鈹偮犅 鈹斺攢鈹 service
鈹偮犅 鈹偮犅 鈹偮犅             鈹溾攢鈹 PaltziMarketApplication.java
鈹偮犅 鈹偮犅 鈹偮犅             鈹溾攢鈹 persistance
鈹偮犅 鈹偮犅 鈹偮犅             鈹偮犅 鈹溾攢鈹 crud
鈹偮犅 鈹偮犅 鈹偮犅             鈹偮犅 鈹斺攢鈹 entity
鈹偮犅 鈹偮犅 鈹偮犅             鈹斺攢鈹 web
鈹偮犅 鈹偮犅 鈹偮犅                 鈹斺攢鈹 controller
鈹偮犅 鈹偮犅 鈹斺攢鈹 resources
鈹偮犅 鈹偮犅     鈹溾攢鈹 application.properties
鈹偮犅 鈹偮犅     鈹溾攢鈹 application.yaml
鈹偮犅 鈹偮犅     鈹溾攢鈹 keystore
鈹偮犅 鈹偮犅     鈹偮犅 鈹斺攢鈹 rtc4j.p12
鈹偮犅 鈹偮犅     鈹溾攢鈹 static
鈹偮犅 鈹偮犅     鈹斺攢鈹 templates
鈹偮犅 鈹斺攢鈹 test
鈹偮犅     鈹斺攢鈹 java
鈹偮犅         鈹斺攢鈹 com
鈹偮犅             鈹斺攢鈹 platzi
鈹偮犅                 鈹斺攢鈹 market
鈹偮犅                     鈹斺攢鈹 PaltziMarketApplicationTests.java

Seria bueno mencionar :
Al realizar creaciones de paquetes estas deben estar por debajo de la clase donde se encuentre nuestro main (@SpringBootApplication), PORQUE, ya que spring scanea desde ese punto hacia abajo por defecto, de lo contrario se tendra que emncionar en esa mima clase la ruta que scaneara.

Proyecto por capas orientado al dominio

  • Dominio -> DTO, Servicios, Definicion repositorios
  • Web -> Controladores API
  • Persistencia -> implementacion de repositorios

Es similar a la estructura 鈥淐lean Arquitecture鈥 donde las capas son:

  • Domain
  • Presentation
  • Data

La arquitectura usada para este proyecto es por capas y orientada al dominio.

Wow, este profe explica muy bien

Gracias, sigamos aprendiendo

DTO % objetos de dominio 鈫 Son objetos que hacen parte del contexto de la aplicaci贸n, en el caso de ejemplo seria el mercado.

Servicios 鈫 Son los encargados que sirven como puente entre los controladores de la api y la capa de persistencia o el repositorio.

Especificaci贸n de repositorios 鈫 Interfaces que definen las reglas del juego de los contratos que ha de cumplir la persistencia para intervenir entre los objetos de dominio y la base de datos.

WEB 鈫 controladores de la API.

PERSISTENCIA 鈫 Es la capa que tiene la obligaci贸n de interactuar con la base de datos, donde estaran los repositorios y los entities que son las clases que mapean y hacen las veces de las tablas que estan en la base de datos.

驴Como se llama esa estructura del proyecto?

Wow vamos bastante bien, buena explicaci贸n por parte del profesor

EXCELENTE PROFESOR

Muy buenas practicas, que bueno!

Entonces, de acuerdo a lo que expone el profesor el modelo resumido de funcionamiento de nuestra api ser谩 as铆:

Pido me corrijan con confianza 馃槂

estructura del proyecto
por capas orientadas al dominio.
DTO y objetos de dominio: contexto de la APP
Servicio: es el puente entre controladores de la API y la persistencia del repositorio quien es la que interviene con la base de datos.
Especificacion de los repositorio: interfaces que establecen las reglas que debe cumplir la persistencia con la base de datos.
capa web estan los controladores de API.
capa de persistencia tiene la obligacion de interactuar con la base de datos. alli estan los repositorios y las entidades, los entities son los que hacen de tablas que estan en nuestra base de datos.

Me encant贸 esta clase馃檶

excelente muy buena clase !!!

Considero que el controlador es m谩s gen茅rico que un controlador web. La aplicaci贸n tambi茅n podr铆a correr en CLI y estar dentro de un paquete CLI, junto con el Web. Por ello, sugerir铆a cambiar el paquete base a 鈥淐ontroller鈥 y dentro de el 鈥淲eb鈥