Saltar al contenido principal

Spring Boot

Abrir en ChatGPT

Spring Boot es una opción popular para construir aplicaciones Java, proporcionando inyección de dependencias, auto-configuración y un modelo de servidor embebido. Cuando usas Spring Boot con webforJ, puedes inyectar servicios, repositorios y otros beans gestionados por Spring directamente en tus componentes de UI a través de la inyección por constructor.

Cuando usas Spring Boot con webforJ, tu aplicación se ejecuta como un JAR ejecutable con un servidor Tomcat embebido en lugar de desplegar un archivo WAR en un servidor de aplicaciones externo. Este modelo de empaquetado simplifica el despliegue y se alinea con las prácticas de despliegue nativas de la nube. El modelo de componentes y la enrutación de webforJ trabajan junto con el contexto de la aplicación de Spring para gestionar dependencias y configuración.

Crear una aplicación Spring Boot​

Tienes dos opciones para crear una nueva aplicación webforJ con Spring Boot: usar la herramienta gráfica startforJ o la línea de comandos de Maven.

Opción 1: Usando startforJ​

La forma más sencilla de crear una nueva aplicación webforJ es startforJ, que genera un proyecto base mínimo basado en un arquetipo webforJ elegido. Este proyecto base incluye todas las dependencias requeridas, archivos de configuración y un diseño predefinido, para que puedas comenzar a construir sobre él de inmediato.

Cuando creas una aplicación con startforJ, puedes personalizarla proporcionando la siguiente información:

  • Metadatos básicos del proyecto (Nombre de la App, ID del Grupo, ID del Artifacto)
  • versión de webforJ y versión de Java
  • Color y Icono del Tema
  • Arquetipo
  • Se ejecuta en - Selecciona Spring Boot para crear un proyecto de Spring Boot

Usando esta información, startforJ creará un proyecto básico a partir de tu arquetipo elegido configurado para Spring Boot. Puedes elegir descargar tu proyecto como un archivo ZIP o publicarlo directamente en GitHub.

Opción 2: Usando la línea de comandos​

Si prefieres usar la línea de comandos, genera un proyecto webforJ de Spring Boot directamente utilizando los arquetipos oficiales de webforJ:

mvn -B archetype:generate \
-DarchetypeGroupId=com.webforj \
-DarchetypeArtifactId=webforj-archetype-hello-world \
-DarchetypeVersion=LATEST \
-DgroupId=org.example \
-DartifactId=mi-app \
-Dversion=1.0-SNAPSHOT \
-Dflavor=webforj-spring

El parámetro flavor le indica al arquetipo que genere un proyecto de Spring Boot en lugar de un proyecto estándar de webforJ.

Esto crea un proyecto completo de Spring Boot con:

  • Configuración de POM padre de Spring Boot
  • Dependencia de inicio de Spring Boot de webforJ
  • Clase principal de la aplicación con @SpringBootApplication y @Routify
  • Vistas de ejemplo
  • Archivos de configuración tanto para Spring como para webforJ

Ejecutar la aplicación Spring Boot​

Un proyecto de arquetipo establece su objetivo predeterminado de Maven, por lo que mvn sin argumentos compila la aplicación, inicia el frontend watch y ejecuta la aplicación:

mvn

La aplicación se inicia con un servidor Tomcat embebido en el puerto 8080 por defecto. Tus vistas y rutas webforJ existentes funcionan exactamente igual que antes, pero ahora puedes inyectar beans de Spring y utilizar funciones de Spring.

Configuración​

Utiliza el archivo application.properties en src/main/resources para configurar tu aplicación. Consulta Configuración de Propiedades para obtener información sobre las propiedades de configuración de webforJ.

Las siguientes configuraciones de application.properties de webforJ son específicas para Spring:

PropiedadTipoDescripciónPredeterminado
webforj.servlet-mappingStringPatrón de mapeo de URL para el servlet de webforJ./*
webforj.exclude-urlsListaPatrones de URL que no deberían ser manejados por webforJ cuando están mapeados a la raíz. Cuando webforJ está mapeado al contexto raíz (/*), estos patrones de URL serán excluidos del manejo de webforJ y pueden ser gestionados por controladores de Spring MVC en su lugar. Esto permite que los endpoints REST y otros mapeos de Spring MVC coexistan con las rutas de webforJ.[]

Diferencias en la Configuración​

Cuando cambias a Spring Boot, varios aspectos de configuración cambian:

AspectowebforJ estándarwebforJ con Spring Boot
EmpaquetadoArchivo WARJAR ejecutable
ServidorExterno (Jetty, Tomcat)Tomcat embebido
Comando de ejecuciónmvn jetty:runmvn spring-boot:run
Configuración principalSolo webforj.confapplication.properties + webforj.conf
Perfileswebforj-dev.conf, webforj-prod.confPerfiles de Spring con application-{profile}.properties
Configuración de puertoEn la configuración del pluginserver.port en propiedades

Sigue aprendiendo