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.

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
