Ejemplo eampleando el generador JHipster
Introducción
La herramienta JHipster está basada en Yeoman, que es un generador de código que podemos ejecutar para generar aplicaciones completas o partes útiles de una aplicación. Este generador puede ampliarse para generar lo que queramos. Los generadores Yeoman promueven lo que el equipo Yeoman llama el Yeoman workflow. Esta es una pila de herramientas del lado del cliente que puede ayudar a los desarrolladores a crear hermosas aplicaciones web rápidamente. Tiene todo lo necesario para trabajar sin las dificultades habituales asociadas a la configuración manual.
Puede utilizarse a través de:
-
una instalación completa
-
el sitio web https://start.jhipster.tech/
-
una imagen Docker
Utilizamos la versión dockerisada porque es fácil de utilizar y genera aplicaciones reactivas.
Instalación mediante Docker
Podemos instalar JHipster a través de Docker. Los ejemplos utilizan la versión de desarrollo (8.0.0-beta.2).
JHipster tiene un Dockerfile específico, que proporciona una imagen Docker.
Realiza una compilación automatizada Docker disponible en: https://hub.docker.com/r/jhipster/jhipster/
Esta imagen te permite ejecutar JHipster dentro de Docker.
Requisitos previos:
-
(Recomendado) Docker Desktop: la forma más sencilla de crear, ejecutar y probar aplicaciones Dockerizadas. Docker Desktop incluye una interfaz gráfica para gestionar contenedores/imágenes/volúmenes, herramientas de desarrollo de Docker, compatibilidad con Kubernetes y mucho más.
-
Docker Engine: aplicación cliente-servidor con interfaz de línea de comandos (CLI). Siga las instrucciones de instalación de Docker Engine.
Como los archivos generados están en tu carpeta compartida, no se borrarán si detienes tu contenedor Docker. Sin embargo, si no quieres que Docker descargue todas las dependencias de Maven y NPM cada vez que inicies el contenedor, deberías guardar su estado o montar un volumen.
Atención: dependiendo de tu sistema operativo, tu DOCKER_HOST será diferente. En Linux, será su localhost. Para Mac/Windows, necesitará obtener la IP usando el siguiente comando: docker-machine ip default.
En Linux, es posible que tenga que ejecutar el comando Docker como root si su usuario no está en el grupo Docker. Te recomendamos que añadas tu usuario al grupo...
Generación de código
Para ver las fuentes generadas, creamos una aplicación eligiendo todo por defecto, excepto:
-
Webflux
-
Base R2DBC
Estudio del código generado
Para esta sección, hemos utilizado la última versión disponible en el momento de escribir este artículo, la versión 8.0.0-beta2.
Podríamos tomar esta aplicación generada como punto de partida para diseñar una aplicación de ejemplo para nuestros futuros proyectos. También es un marco interesante para estudiar una aplicación muy completa.
La versión de spring-boot es la 3.1.1, que estamos migrando a la 3.1.2.
groupId |
artefactId |
Versión |
Utilidad |
tech.jhipster |
jhipster-framework |
8.0.0-beta.2 |
Framework de generación de aplicaciones Spring Boot + Angular/React/Vue |
org.springframework.boot |
spring-boot-configuration- processor |
3.1.2 |
Procesador de metadatos de configuración de Spring Boot |
org.springframework.boot |
spring-boot-loader-tools |
3.1.2 |
Herramientas para cargar aplicaciones Spring Boot |
org.springframework.boot |
actuador de arranque por resorte |
3.1.2 |
Puesta en marcha de las funcionalidades de gestión de la producción |
org.springframework.boot |
spring-boot-starter-data-r2dbc |
3.1.2 |
Iniciación al uso de Spring Data R2DBC |
org.springframework.boot |
spring-boot-starter-logging |
3.1.2 |
Iniciador para el registro con Logback |
org.springframework.boot |
spring-boot-starter-mail |
3.1.2 |
Inicio para utilizar el mailing |
org.springframework.boot |
spring-boot-starter-oauth2-resource- server |
3.1.2 |
Starter para crear un servidor de recursos OAuth2 |
org.springframework.boot |
spring-boot-starter- seguridad |
3.1.2 |
Iniciación a las funciones de seguridad de Spring Boot |
org.springframework.boot |
spring-boot-starter-test |
3.1.2 |
Starter para pruebas con Spring Boot |
org.springframework.boot |
spring-boot-starter-thymeleaf |
3.1.2 |
Starter para la utilización de Thymeleaf como motor de plantillas |
org.springframework.boot |
spring-boot-starter- validación |
3.1.2 |
Starter para la validación de Java Bean |
org.springframework.boot |
spring-boot-starter-webflux |
3.1.2 |
Starter para las aplicaciones web reactivas con Spring WebFlux |
org.springframework.boot |
spring-boot-test |
3.1.2 |
Compatibilidad con pruebas de Spring Boot |
org.springframework .security |
primavera-prueba de seguridad |
3.1.2 |
Compatibilidad con las pruebas de seguridad de Spring |
org.springdoc |
springdoc- openapi- starter-webflux-api |
3.1.2 |
Starter para la documentación de API con SpringDoc para WebFlux |
com.fasterxml .jackson .datatype |
jackson-datatype-hppc |
- |
Módulo... |
Conclusión
JHipster es una herramienta de generación de aplicaciones robusta y probada que combina varias tecnologías de vanguardia para proporcionar una base sólida para el desarrollo de aplicaciones modernas. Cuando se trata de crear aplicaciones basadas en Spring WebFlux, JHipster ofrece un sinfín de ventajas.
-
Rápida puesta en marcha: con JHipster, la configuración de una aplicación Spring WebFlux se acelera enormemente. Lo que podría llevar días o semanas de forma manual se puede realizar en minutos con JHipster.
-
Mejores prácticas integradas: JHipster incorpora las mejores prácticas en el desarrollo de aplicaciones, lo que garantiza que la aplicación resultante no solo sea funcional, sino también optimizada y segura.
-
Personalización: aunque JHipster automatiza muchos aspectos del desarrollo, también ofrece una gran flexibilidad a la hora de personalizar la aplicación para adaptarla a las necesidades específicas del proyecto.
-
Integración con otras tecnologías: JHipster admite la integración con diversas bases de datos, herramientas de autenticación y otras tecnologías, lo que garantiza que la aplicación esté preparada para una gran variedad de escenarios de uso.
-
Amplia documentación: una de las mayores ventajas de JHipster es su activa comunidad y su completa documentación...