Spring Boot - Java FX - Archetype
Introducción
Arquetipo para el desarrollo de aplicaciones con Spring Boot y JavaFX utilizando Cifrado a nivel base de datos.
Elementos Configurados
El presente proyecto cuanta con los siguientes elementos preconfigurados:
-
Spring Boot 1.4.0
-
JPA 2.0 intrumendado con Hibernate
-
Spring Security 4
-
Spring MVC 4
-
Spring IoC 4
-
JavaFX 8
-
Jasyp, para la encripción de archivos de propiedades.
-
Base de datos H2 con encripción AES
Pre-requisitos
-
Instalar Apache Maven
-
Instalar java JDK 8
-
Instalar un cliente Git
Instalación
- Clonar el proyecto desde el repositorio
$ git clone http://gitlab.dads.infotec.mx/arquitectura-dads/javafx-archetype.git
- Instalar las dependencias necesarias a través de Maven:
cd javafx-archetype
$ mvn install
Ejecutar el proyecto
El proyecto está utilizando tecnología de cifrado a nivel de archivos en texto plano y a nivel de base de datos, por lo tanto, para poder levantar el proyecto se deberá de proveer al ambiente con la llave maestra que permita decencriptar archivos y base de datos. Ésto se logra a través de la configuración de la variable de entono -Djasypt.encryptor.password
durante la inicialización del aplicativo:
$ mvn -Djasypt.encryptor.password=keypass spring-boot:run
Conexión a la base de datos
Para consultar la consola de administración de la base de datos H2 Database se puede hacer a través de la siguiente dirección en un navegador web:
http://localhost:8080/console/
Nota: _Esta configuración sólo deberá de ser utilizada durante la etapa de desarrollo, una vez desplegado el sistema, se deberá de deshabilitar esta opción.
_
Para acceder a la consola se tendrá que proveere la siguiente información, misma que puede ser consultada en los archivos application.properties
y SecurityTest.java
;
**JDBC URL:**jdbc:h2:file:./.data/secure:appdb;CIPHER=AES
**User Name: **admin
**Password: **8c6976e5 ab0a16f33ae28758376ff0705c06c6b2a52d45ce75fd5714524e3909d3cabc74
Despliegue de la Aplicación en ambiente productivo
A continuación se describen los pasos que se deberán de seguir para instalar la aplicación en un ambiente productivo:
- Empaquetado de la aplicación
Para generar el archivo .jar
se deberá de utilizar el siguiente comando:
mvn clean package -Dmaven.test.skip=true spring-boot:repackage -Pproduction
La instrucción anterior deja el archivo target/javafx-app.jar
este archivo es el que utilizaremos para nuestro ambiente productivo.
- Levantar el proyecto
Para poder levantar el proyecto nos tenemos que colocar en el directorio donde se guardo el archivo javafx-app.jar
. A continuación se deberá de utilizar el siguiente comando:
java -jar -Dspring.profiles.active=production -Djasypt.encryptor.password=keypass javafx-app.jar
Nota: debido a que estamos encriptando los recursos de la aplicación, es que se deberá de proporcionar la clave que habilitará el uso de la aplicación, este parámetros es -Djasypt.encryptor.password
y su valor, par este ejemplo, es keypass
. Este valor puede configurarse dentro de la clase JasyptConfiguration.java
Estructura de directorios en la USB
A continuación se muestra la estructura de directorios que se deberá de utilizar dentro de la USB:
usb
├── .app
│ ├── .data
│ │ └── secure:appdb.mv.db
│ └── javafx-app.jar
├── .jre
│ ├── jre_linux_x64
│ ├── jre_windows_x86
│ └── jre_windows_x64
├── run.sh
├── run_x86.bat
└── run_x64.bat
Herramienta
Con la finalidad de facilitar el desarrollo de pantallas utilizando JavaFX, se sugiere utilizar la herramienta Scene Builder
En el siguiente link se muestra una comparación de los principales DatabaseEngines: