Ticker

6/recent/ticker-posts

Creando proyectos con Spring Initializr


Hoy en día para el desarrollo con Spring Boot se dispone de una herramienta web online denominada Spring Initializr, la herramienta nos facilita la creación de proyectos para Maven o Gradle. El proyecto es creada en base a los parámetros de configuración que es generada automáticamente desde Spring Initializr, cada proyecto se crea según el lenguaje seleccionado (actualmente los lenguajes permitidos son: Java, Kotlin y Groovy); finalmente, al genera el proyecto automáticamente se realizar la descargar en un archivo comprimido de tipos Zip, conteniendo la carpeta con la estructura del proyecto para ser importada directamente desde el editor de programación como Eclipse IDE, Netbeans IDE o IntelliJ IDEA.

Requisitos:

  • Spring Initializr.
  • Java 17.
  • Maven 3.8.6.
  • IntelliJ IDEA Ultimate.

Lo que veremos en este tutorial:

  1. ¿Que es Spring Initializr?
  2. Mi primer proyecto con Spring Initializr.
  3. Abriendo el proyecto con IntelliJ IDEA.

1. ¿Qué es Spring Initializr?

Sitio web o una herramienta basada en la web que se puede usar para la configuración de proyectos para Spring Boot; la principal ventaja de usar Spring initializr, es acelerar el proceso de creación de proyectos en base a trabajos preliminares, inclusive se agregan las dependencias que desee (por ejemplo: web, MySql, JPA y H2) y se genera el proyecto.

Spring initialzr hará lo siguiente:
  1. Crea el archivo de compilación con todas las dependencias requeridas, complementos y también se encarga de las versiones.
  2. Crea la estructura del proyecto o la estructura de carpetas para nuestro proyecto de Spring Boot.

2. Mi primer proyecto con Spring Initializr.

Para la creación de un proyecto Spring Boot con Spring Initializr se debe considerar los siguientes parámetros:

  1. Project: Permite elegir la herramienta de construcción de la aplicación. En Java las dos herramientas más usadas son Maven y Gradle. Recomendamos Maven al ser la más expendida.
  2. Language: Lenguaje de programación que se va a utilizar en la aplicación. Los tres tipos están soportados por la máquina virtual JVM. Java es la opción más extendida y tiene mejor soporte de los editores de programación.
  3. Spring Boot: Versión del Spring Boot a usar. Siempre que se pueda se optará por la última estable, compuesta únicamente por números.
  4. Project Metadata:
    • Group: Se refiere al descriptor de Maven groupId, utilizado para clasificar el proyecto en los repositorios de binarios. Normalmente se suele usar una referencia similar a la de los packages de las clases. Por ejemplo, com.arteco.web para disponer todas las aplicaciones web en el mismo directorio.
    • Artifact: Se refiere al otro descriptor de Maven artifactId, y por tanto para indicar el nombre del proyecto y del binario resultante. La combinación de groupId y artifactId (más la versión) identifican inequívocamente a un binario dentro de cualquier organización.
    • Name: Asignar un nombre al proyecto.
    • Description: Determina una descripción al proycto a crear.
    • Packaging name: Se refiere al nombre principal de paquete de nuestro apliación.
    • Packaging: Indica qué tipo de binario se debe construir. Si la aplicación se ejecutará por sí sola se seleccionará JAR, éste contiene todas las dependencias dentro de él y se podrá ejecutar con java -jar binario-.jar. Si por el contrario, la aplicación se ejecutará en un servidor J2EE existente o en un Tomcat ya desplegado se deberá escoger WAR.
    • Java: Se selecciona la versión de Java a usar. En este caso, se recomienda usar la versión de Java más antigua para garantizar la compatibilidad con otras librerías o proyectos que se quieran incluir, así será más probable encontrar documentación existente que siga siendo válida. Reduce el riesgo de toparse con funcionalidades no muy maduras.
  5. Dependencies: Buscador de dependencias con los starters de Spring boot disponibles. Las dependencias más habituales son:
    • Spring Web: Orientado al desarrollo de aplicación web o microservicios.
    • Thymeleaf: Incorpora el motor de plantillas para HTML dinámico (sucesor de JSP - Java Server Page).
    • Spring Data JPA: Capa estándar de acceso a base de datos SQL denominada Java Persistence Api.
    • Spring Security: Incorporar controles de acceso en base a usuarios y roles sobre URLs de la aplicación. Asimismo, habilita el control de ejecución de métodos de servicio en base a roles según los estándares J2EE.
    • Lombok Aporta: Facilita la programación como la creación de @Getters y @Setters automáticamente para las clases que forman parte del conjunto de mensajes.
    • Flyway Librería: Permite aplicar scripts de cambios de base de datos de manera controlada cuando arranca la aplicación. Estos scripts se denominan migraciones y están sujetos a un control de versiones para garantizar que se aplican en el orden correcto.
    • Mysql/Postgresql: Incluye el JAR que contiene el driver JDBC necesario para configurar la capa de JPA según la base de datos a usar.

Crearn nuestro primer proyecto - Seleccionar los parámetros y ingresar los datos necesarios.


Después de seleccionar los parámetros necesarios se requiere generar el proyecto, para lo cual se tiene que hacer click en el botón "Generate Ctrl+" y automaticamente se descargará el archivo zip con el nombre del Artifact que contendrá la carpeta con la estructura de la aplicación lista para importar desde el IDE de tu preferencia.

3. Abriendo el proyecto con IntelliJ IDEA

3.1. Después de la descarga del archivo, se debe descomprimir en achivo ZIP con la finalidad de importar o abrir el proyecto creado.

Nuestro proyecto generado fue en base a 2 dependencias - Spring Web y Spring Boot Dev Tools.


3.2. Seguidamente debemos abrir nuestro proyecto (archivo descomprimido) desde IntelliJ IDEA Ultimate

Clic en Open, ubicar el directorio del proyecto y seleccionar, finalmente clic en OK.


3.3. Finalmente, esperamos que carguen todos los archivos

Se tiene que esperar que todo los archivos carguen


La estructura del contenido del proyecto generado.


Referencias:


Código disponible en GitHub

Publicar un comentario

0 Comentarios