Skip to content
Snippets Groups Projects
user avatar
Daniel Cortes Pichardo authored
eea6b1b8
Name Last commit Last update
src
.gitignore
README.md
pom.xml

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

  1. Instalar Apache Maven

  2. Instalar java JDK 8

  3. Instalar un cliente Git

Instalación

  1. Clonar el proyecto desde el repositorio

gitlab-dads:


$ git clone http://gitlab.dads.infotec.mx/arquitectura-dads/javafx-archetype.git
  1. 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:

  1. 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.

  1. 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:

http://www.h2database.com/html/features.html