---
# System prepended metadata

title: Java Spring básico
tags: [Backend, Java, spring]

---

Spring es el framework más usado de Java. Nos ofrece herramientas que nos permite crear proyectos más avanzados, con mejores prácticas y en menor tiempo. También posee una gran comunidad, lo que nos brinda muchísima documentación y ayuda.

Spring tiene una estructura modular y flexible, lo que nos hace usar solo lo que necesitemos.

Para inicializar un proyecto de Spring podemos usar [spring initializr](https://start.spring.io/)

# Spring Boot

## Configuración
Las modificaciones de una app de Spring boot las haremos en el fichero app.propperties o application.yml. Podemos gestionar diferentes perfiles, para ejecutarse en desarrollo, prod, etc.

Para crear varios perfiles solo debemos crear un fichero dentro de resources que se llame application-\<profile>.properties

- server.port: Para cambiar de puerto
- server.servlet.context-path: Para cambiar el path inicial.
- spring.profiles.active: Le indicamos que perfi queremos que use
- spring.jpa.hibernate.ddl-auto: Le indicamos a hibernate que acción debe realizar a la hora de interactuar con la base de datos (Lo más recomendable es update, que nos permite actualizar las tablas en caso de que haya cambios en las entities)-
- spring.jpa.show-sql: Nos permite ver las sentencias sql que se irán ejecutando.

[Propiedades comunes de Spring](https://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html)

# Spring Data
[Spring Data JPA](/mUmmuxwtTIGEU430Ut_QFw)

# Build de la aplicación
Para generar el jar vamos a ejecutar el bootJar de las task de gradle dentro de intelli.

![](https://hackmd.io/_uploads/H1rs-Ffon.png)

Para ejecutar el jar usamos el comando `java -jar <archivo.jar>`
## Propiedades
- -Xmx\<mb>m: Asignarle 2048 mb de memoria
- -Dspring.profiles.active=\<profile>
- -Dserver.port=\<port>

## Caso práctico
![](https://hackmd.io/_uploads/Bk9udUO92.png)
