- Servidor de BD MySQL
- Maven (versión > 3.5.x)
- Docker
- (opcional) GIT
- (opcional) IDE Java (Eclipse, Netbeans, IntelliJ)
Nota: En los equipos de laboratorio, es conveniente establecer la variable de entorno JAVA_PATH, para que el comando mvn
(Maven) compile y ejecute los proyectos siempre con el mismo JDK.
export JAVA_HOME=/usr/lib/jvm/jdk-20
export PATH=$JAVA_HOME/bin:$PATH
- Docker compose up : en la carpeta y esperar a que inicialize
- Crear BD "recetas" en MySQL
mysql -u root -p [pedirá la contraseña de MySQL]
mysql> create database recetas;
mysql> create user recetas@'%' identified by "recetas";
mysql> grant all privileges on recetas.* to recetas@'%';
Note: No es recomendable el '%' porque podrían acceder de forma externa
Adicionalmente, puede ser necesario establecer un formato de fecha compatible
mysql> set @@global.time_zone = '+00:00';
mysql> set @@session.time_zone = '+00:00';
Existen varias alternativas
- Crear un proyecto Maven vacío e incluir las dependencias de los starters de Spring Boot
- Usar Spring Tool Suite (https://spring.io/tools) y crear un nuevo proyecto String Starter project
- Crear el proyecto desde Spring Initializr (https://start.spring.io/)
Project: Maven Project
Language: Java
Spring Boot version: 3.1.5
Proyecto:
groupId: es.uvigo.dagss
artefactId: recetas
package: es.uvigo.mei.dagss
name: Recetas
Packaging: Jar
Java version: 21
Dependencias a incluir:
Spring Web
Spring Data JPA
MySQLDriver
Swagger
Spring HATEOAS (opc)
Lombook (opc)
En src/main/resources/application.properties
nano src/main/resources/application.properties
spring.datasource.url=jdbc:mysql://localhost:3306/recetas
spring.datasource.username=recetas
spring.datasource.password=recetas
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.show_sql=true
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImplle
springdoc.api-docs.path=/swagger
springdoc.swagger-ui.path=/swagger
springdoc.packages-to-scan=es.uvigo.dagss.recetas.controlador
springdoc.api-docs.enabled=true