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 “Settings -> 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 ‘Aplicar’.

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

En mi caso volví a usar la Ñ.

No olviden darle en ‘Apply’. 👀

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

Damos ‘Apply’ 👀

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 “Clean 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 “Controller” y dentro de el “Web”