Configurar un proyecto con Spring Boot y Hibernate

Crear un proyecto nuevo en Spring Boot y conectar MySQL con Hibernate

Alan Badillo Salas
Full Stack Java
6 min readAug 28, 2018

--

Vamos a configurar un nuevo proyecto con Spring Boot y Hibernate. Spring Boot es un framework disponible a través de repositorios Maven y Gradle con el cual podemos ofrecer Servicios Web con Java. A diferencia del Spring tradicional Spring Boot nos permite una rápida configuración a través de anotaciones @ las cuales nos permiten ahorrar mucho código y semántica XML. Por otro lado Hibernate es un framework para poder mapear nuestra base de datos con el código a tráves de entidades POJO (Plain-Old Java Object o clases sencillas que contienen sólo atributos, propiedades y constructores sin funcionalidad extra). Hibernate nos permite consumir nuestras tablas SQL a través de entidades y repositorios o crear dichas tablas si no existen a través de nuestras entidades.

Instalación

Lo más sencillo es descargar el entorno de desarrollo llamado Spring Tools Suite o STS desde la página: https://spring.io/tools

En Windows es importante descargar la versión de 64 bits para no tener problemas ya que en la página nos descarga por defecto la versión de 32 bits y al abrir arroja un error. El enlace directo a la versión de windows de 64 bits es: https://download.springsource.com/release/STS/3.9.5.RELEASE/dist/e4.8/spring-tool-suite-3.9.5.RELEASE-e4.8.0-win32-x86_64.zip

En Windows y Linux bastará con descomprimir el archivo Zip descargado y ejecutar el programa ubicado en la carpeta RELEASE. En mac hay que copiar el ejecutable a la carpeta de aplicaciones.

El editor STS está basado en Eclipse y preconfigurado para crear rápidamente proyectos de Maven y de Spring.

Es importante tener instalado Java JRE 8+, Java JDK 8+ y MySQL Cummunity Server 5+. Desde la página de Oracle podemos descargarlos aceptando la licencia y pulsando en No thanks, just download para no tener que registrarse.

Al instalar MySQL verfica que se agregue al PATH en windows y puedas acceder a este desde la terminal, más adelante dejaré un enlace que contenga los pasos de la instalación aquí.

Crear el proyecto de Spring Boot

Spring es un framework cuyo objetivo es facilitar la implementación de las capas de un negocio (ver más abajo) con Java. Spring Boot se basa en la creación de clases que estén marcadas con anotaciones especiales que guien el desarrollo de nuestro proyecto. Para empezar, debemos crear un proyecto limpio dónde poner nuestro código.

Vamos a pulsar el ícono de nuevo proyecto luego en la opción de Spring Boot y en Spring Starter Project o en File>New>Spring Starter Project. Como se muestra en la siguiente imagen.

En la primer pantalla de configuración deberemos establecer el nombre del proyecto (A), el cuál debe estar relacionado con lo que estemos haciendo, este también será utilizado como nombre del Artefacto, el cual se refiere al nombre clave del proyecto para nuestra empresa. También estableceremos el nombre del grupo de desarrollo (B) que se refiere al grupo de desarrollo, comunmente se usa el nombre de la empresa de la forma com.miempresa u org.miempresa, es buena práctica repetir este mismo nombre como nombre del paquete principal.

En la siguiente ventana de configuración deberemos marcar las dependencias de nuestro proyecto. Si queremos usar MVC con Web será bueno marcar desde este momento Web>Web, si vamos a utilizar Hibernate con MySQL podríamos marcar desde este momento SQL>MySQL, SQL>JDBC y SQL>JPA. La finalidad de marcar estas dependencias es cargar las librerías JAR necesarias para utilizar diferentes tecnologías, algo así como indicar que librerías queremos utilizar.

Si por error olvidaste agregar una dependencia o quieres agregar más dependencias puedes hacerlo en el archivo pom.xml ubicado en la raíz (A) del proyecto. Para añadir una dependencia basta con conocer el nombre del grupo y artefacto. En la pestaña señalada en (B) podemos acceder a un buscador de dependencias.

Maven es un sistema de administración de dependencias que se encarga de descargar las librerías necesarias para que el proyecto funcione, se basa en la creación de un árbol de dependencias el cuál marca para cada dependencia que otras dependencias (librerías) necesita y en qué versión mínimo. Si alguna dependencia falta, Maven automáticamente la descargará de internet y actualizará el árbol. Con esto evitamos estar buscando y agregando librerías manualmente, sin embargo, será imposible crear proyectos sin acceso a internet. Pero podemos utilizar la página https://start.spring.io/ para generar un proyecto y descargarlo como Zip para comenzarlo a utilizar.

Configurar Hibernate

Hibernate es un framework especializado para las primeras dos capas del negocio (a saber la capa de datos DTO y la capa de acceso a los datos DAO). Hibernate funciona mediante el marcado de clases mediante anotaciones para relizar un mapeo entre nuestras entidades POJO en Java y nuestras tablas en SQL. Lo primero será modificar el archivo de propiedades (application.properties (A) ubicado en la carpeta src/main/resources) de la aplicación para indicar las siguientes configuraciones que se muestran comentadas en la imagen. También deberemos cambiar el nombre de la base de datos (B) y posiblemente el puerto o servidor de MySQL y el nombre del usuario y contraseña (C).

En este caso se ejecutará el query select 1 para verificar que la conexión a la base de datos este funcionando y la demás configuración puede quedar igual.

Ejecutar el proyecto

Antes de ejecutar el proyecto sería recomendable acceder a MySQL desde una terminal con el comando mysql -u root -p (A) sustituyendo root si es necesario por el nombre de usuario con el que tenga acceso. También deberíamos garantizar que la base de datos super_cupcake exista usando el comando create database if not exits super_cupcake;(B).

Para ejecutar el proyecto deberemos estar ubicados sobre cualquier archivo de src/main/java o el archivo de propiedades y pulsando el botón verde (A) o en Run>Run. Al ejecutar por primera vez deberemos seleccionar Spring Boot App del menú. Esto montará a través de Apache Tomcat un servidor en el puerto por defecto 8080 (puede modificarse en las propiedades con server.port = 5000 para usar otro puerto).

En la consola deberíamos ver algo similar a la imagen. Observa que el botón de Stop (A) debería estar activo para poder detener el servidor, sino significa que hay algún error. También observa el puerto dónde fue montado el servidor (B) por defecto el 8080.

Si accedemos a la ruta http://localhost:8080 en el navegador, veremos una página genérica de Spring que nos indica que no se ha definido ningún mapeo para la ruta /.

Si detenemos el servidor y actulizamos la ruta en el navegador obtendremos un error ya que ahora no hay nada en ese puerto.

Conclusiones

Hasta el momento hemos configurado nuestro primer proyecto de Spring Boot y Hibernate listo para albergar todo el backend y frontend de nuestro negocio. Ahora ya puedes acceder a la serie de entregas para Modelar un Negocio y comenzar a trabajar tus proyectos.

Desde ahora podemos darnos cuenta lo fácil y rápido que es configurar un proyecto en Spring Boot gracias al gestor de dependencias Maven y el archvio application.properties. Y aunque aún no hay código bailando podemos estar orgullosos de poder montar un servidor en escasos minutos.

Si te ha gustado esta entrega no olvides aplaudirla y suscribirte. ¡Hasta la próxima!

--

--

Alan Badillo Salas
Full Stack Java

L. Matemáticas Aplicadas UAM-Cuajimalpa. M. en Inteligencia Artificial IPN-CIDETEC. Desarrollador Full Stack MEAN/MERN. Data Scientist.