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

Curso de Java Spring

Curso de Java Spring

Alejandro Ram铆rez

Alejandro Ram铆rez

Instalaci贸n de ambiente de desarrollo: Linux Ubuntu

4/41

Lectura

驴Qu茅 vas a necesitar?

Para este curso vas a ocupar cuatro herramientas:

  • El OpenJDK que ya vimos en la clase pasada y que nos dar谩 todo lo necesario para construir aplicaciones usando Java.

  • El IDE que usaremos en el curso ser谩 IntelliJ IDEA, la versi贸n ser谩 la Community Edition que se acomoda sin problemas a nuestras necesidades.

  • PostgreSQL ser谩 la base de datos encargada de gestionar toda la informaci贸n que ser谩 expuesta en la API. M谩s adelante vamos a configurarla y a configurar un set de datos inicial. Si a煤n no lo conoces o no manejas bases de datos relacionales, te recomiendo que visites nuestro curso en platzi.com/postgresql.

  • Postman, es un cliente donde vamos a probar de manera sencilla todos los servicios expuestos de nuestra API antes de publicarla. Si quieres aprender m谩s sobre esta herramienta te recomiendo que te pases por nuestro curso en platzi.com/postman.

Instalaci贸n de ambiente de desarrollo en Ubuntu 20.04.1 LTS

Para instalar las herramientas que vamos a utilizar en este curso para el sistema operativo Linux Ubuntu debemos seguir los siguientes pasos:

Java OpenJDK

  1. Abrir la terminal y luego actualizar el 铆ndice de paquetes con sudo apt update.
  1. Una vez termine de actualizar debe realizar la instalaci贸n de Java OpenJDK con el comando sudo apt install openjdk-11-jdk.
  1. Cuando este proceso termine debes verificar si la instalaci贸n del OpenJDK se realiz贸 correctamente, ejecuta el comando java -version y ver谩s lo siguiente en pantalla:

IntelliJ IDEA

  1. Se puede instalar de varias maneras, seg煤n sea su caso puedes consultar en la siguiente gu铆a https://www.jetbrains.com/help/idea/installation-guide.html.

Yo lo har茅 desde Ubuntu Software, la tienda de aplicaciones de Ubuntu. Al abrir esta herramienta se debe realizar la b煤squeda de IntelliJ.

  1. Seleccionar la versi贸n Community, que es la versi贸n gratuita y que para nuestras necesidades se ajusta completamente:

  2. Ahora esperamos a que el instalador termine el proceso:

  3. Una vez terminada la instalaci贸n aparece con el bot贸n Quitar. Para abrirlo debes ubicar el acceso directo que autom谩ticamente fue creado en la lista de aplicaciones.

PostgreSQL

  1. Lo primero es saber que en el sitio oficial de PostgreSQL para Linux Ubuntu en https://www.postgresql.org/download/linux/ubuntu/ est谩n las especificaciones para la instalaci贸n:

  2. Primero se crea el archivo que almacena la configuraci贸n del repositorio, para esto se debe abrir la terminal para ejecutar lo siguiente:

  1. Luego se debe importar la llave p煤blica del repositorio ejecutando la siguiente l铆nea: wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
  1. Ahora se debe realizar la instalaci贸n de la aplicaci贸n (recomendado la versi贸n 11) con :
  • sudo apt update

  • sudo apt install postgresql-11 pgadmin4

  1. Hasta ac谩 ya tendremos instalado PostgreSQL en nuestro sistema Linux. Para comprobar el estado del servicio de la aplicaci贸n se puede ejecutar el siguiente comando: sudo systemctl status postgresql.service

  2. En PostgreSQL la autenticaci贸n del cliente es controlada por el archivo de configuraci贸n ubicado en la ruta /etc/postgresql/11/main/pg_hba.conf, este archivo de configuraci贸n puede ser editado seg煤n las necesidades. Con el siguiente comando puedes acceder a Postgres para su gesti贸n: sudo -i -u postgres psql

  1. Por 煤ltimo para utilizar pgAdmin4 ejecuta en la terminal pgadmin4 o ubica el acceso directo en la lista de aplicaciones:

Postman

  1. Lo primero es buscar Postman en la tienda de aplicaciones Ubuntu Software. Tambi茅n puedes hacer la instalaci贸n manualmente. Para este modo se recomienda realizar la descarga directamente desde postman.com/downloads
  1. Una vez que le des instalar se realiza autom谩ticamente todo lo necesario para el uso correcto de la aplicaci贸n:
  1. Cuando finalice la instalaci贸n aparecen los botones Quitar y Permisos. Para abrirlo debes buscar el acceso directo que autom谩ticamente fue creado en la lista de aplicaciones y ya puedes empezar a utilizarlo:

Aportes 27

Preguntas 5

Ordenar por:

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

#
# Setup the repository
#

# Install the public key for the repository (if not done previously):
curl https://www.pgadmin.org/static/packages_pgadmin_org.pub | sudo apt-key add

# Create the repository configuration file:
sudo sh -c 'echo "deb https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/$(lsb_release -cs) pgadmin4 main" > /etc/apt/sources.list.d/pgadmin4.list && apt update'

#
# Install pgAdmin
#

# Install for both desktop and web modes:
sudo apt install pgadmin4

# Install for desktop mode only:
sudo apt install pgadmin4-desktop

# Install for web mode only: 
sudo apt install pgadmin4-web 

# Configure the webserver, if you installed pgadmin4-web:
sudo /usr/pgadmin4/bin/setup-web.sh

Para instalar pgadmin4

Adjunto docker-compose de un postgres, espero sea de utilidad:

version: '3'
services:
  postgres:
    image: 'postgres:10-alpine'
    hostname: 'postgres'
    container_name: 'postgres-server'
    ports:
      - '25432:5432'
    environment:
      - POSTGRES_USER=postgres_admin
      - POSTGRES_PASSWORD=postgres_admin
    networks:
      - custom-network
networks:
    custom-network:
        driver: bridge

Tamos ready!

Saludos , igual me fu铆 por la opci贸n de docker y docker compose para crear la base de datos y el pgadmin. aqui mi versi贸n.
Saludos. 馃槂

version: "3.8"
services:
  postgres:
    image: postgres:13
    container_name: postgres
    ports:
        - 5432:5432
    volumes:
        - postgres-volume:/var/lib/posgresql/data
    environment:
      - POSTGRES_USER=user
      - POSTGRES_PASSWORD=password
  pgadmin:
    image: dpage/pgadmin4
    container_name: pgadmin
    restart: always
    ports:
      - 8989:80
    environment:
      - [email protected]
      - PGADMIN_DEFAULT_PASSWORD=password

volumes:
  postgres-volume:

networks:
    default:
      name: postgres_network
version: "3.8"
services:
  postgres:
    image: postgres:13
    container_name: postgres
    ports:
        - 5432:5432
    volumes:
        - postgres-volume:/var/lib/posgresql/data
    environment:
      - POSTGRES_USER=user
      - POSTGRES_PASSWORD=password
  pgadmin:
    image: dpage/pgadmin4
    container_name: pgadmin
    restart: always
    ports:
      - 8989:80
    environment:
      - [email protected]
      - PGADMIN_DEFAULT_PASSWORD=SuperSecret

volumes:
  postgres-volume:

networks:
    default:
      name: postgres_network

馃槂

Es solo a mi o las im谩genes de este tutorial no se pueden ver?

Listo el ambiente鈥 Me mostr贸 warnings pero ya est谩 listo鈥

Listo el ambiente!

Por mi parte instale Postgres en una Raspberry teniendo asi algo parecido a un servidor de base de datos, les comparto el link: https://kb.objectrocket.com/postgresql/how-to-install-and-set-up-postgresql-on-a-raspberry-pi-part-2-1165

No funciona su tutorial para WSL, actual铆cenlo. estamos pagando una suscripci贸n para tener que 鈥渂uscarnos la vida鈥 para que funcione en vez de concentrarnos en lo que realmente importa en el curso.

Estamos listo

para instalar openJDK en MacOSX es recomendable usar https://adoptopenjdk.net/, lo prob茅 compilando una aplicacion con gradle targetCompatibility = 鈥1.8鈥 y springboot y haciendo deploy a WebLogic 12c y funciona perfecto!.

Listo!!!

gracias

listo

Chevere

lista para empezar

LINUX -El repositorio de OpenJDK de este curso esta algo viejo (no estoy seguro si es una version estable o esta desactualizada la clase). trabajare con la ultima version.

Para los que desean aqui estan los comandos:

actualizamos primero lo repositorios

sudo apt update && sudo apt upgrade -y

Buscamos cual es la ultima version q nos aparece, en mi caso aparece la 17

apt-cache search openjdk

Intalamos la version que vamos a utilizar

sudo apt-get install  openjdk-17-jdk

y por ultimo verificamos la instalacion.

java --version

Una forma f谩cil de instalar PostgreSQL es usando contenedores, anexo repo:

https://github.com/rubeeengm/docker-postgresql.git

Linux, Windows o Mac?, cual recomiendan, prefieren, aman y por que?.

Es necesario que sea en 驴Linux? si tengo todo esto en Windows, es igual?

Acabo de hacer una instalaci贸n sobre Windows 10 con Java (Oracle 11.0.10), PostgreSQL (13.2), Postman (8.0.6) e IntelliJ IDEA (2020.3.2) y todo muy bien!!

Excelente que brinden todos los links. Gracias!隆!隆隆!

Hola! 驴Alguien sabe que significan los comandos -i -u?

pueden usar postgres obtenido desde docker

Cuando ejecuto el comando : sudo apt install postgresql-11 pgadmin4
me muetra el siguiente error:
Unable to locate package postgresaql-11
Unable to locate package pgadmin4
a alguien mas le pasa?..
Version de Ubuntu: 16.04

Esta excelente la version 4 de postgresql

Done!, IDE, DB, POSTMAN鈥ext!