SlideShare una empresa de Scribd logo
1 de 41
Descargar para leer sin conexión
QUARKS TRAINING CENTER
PROYECTO GESTION
DE INVITADOS
Desarrollo de Aplicaciones Web con Spring
MVC, Spring Data, Spring Security y Spring
Boot
Renato De La Rosa Castillo
18/05/2019
Tutorial practico para crear un mantenimiento de invitados usando Spring MVC, Spring Data,
Spring Boot, Spring Security y Boostrap con Thymeleaf desplegado en un PAAS como HEROKU,
usando como IDE STS 3.9
Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 2
Desarrollo de Aplicaciones Web con Spring MVC, Spring
Data, Spring Security y Spring Boot
1ª Edición, 18/05/2019
© 2019 Quarks Training Center. Todos los derechos reservados.
Ninguna parte de este libro puede ser reproducida o transmitida en cualquier
forma, sea por medio electrónico o mecánico, sin permiso por escrito de
Quarks Training Center, excepto para resúmenes breves en revisiones y análisis.
Quarks Training Center
www.quarks.com.pe
informes@quarks.com.pe
+51 974926174
Síganos en las redes sociales y mantente al tanto de las
novedades!
FACEBOOK YOUTUBE
Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 3
Sobre el autor
Renato De La Rosa
Instructor JAVA en Quarks Training Center,
graduado en Ingeniería de computación y
sistemas, cuenta con un post-grado en la
Universidad Federal de Sao Paulo, con más
de 8 años desarrollando en tecnología JAVA
en empresas del sector público y privado.
Apasionante de la tecnología y autodidacta.
Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 4
Tabla de contenido
Glosario......................................................................................................................................... 5
Requisitos...................................................................................................................................... 6
Implementación............................................................................................................................ 7
Publicación.................................................................................................................................. 29
Conclusiones/Recomendaciones ............................................................................................... 40
Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 5
GLOSARIO
MVC Modelo Vista Controlador
PAAS Plataforma como Servicio
STS Spring Tool Suite
Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 6
REQUISITOS
Instalar JDK 1.8 https://www.java.com/es/download/
Descargar STS para Windows desde https://spring.io/tools3/sts/all
Descargar MySQL para Windows desde https://dev.mysql.com/downloads/mysql/5.6.html
Descargar Postgres para Windows desde https://www.postgresql.org/download/windows/
Descargar GIT para Windows desde https://git-scm.com/download/win
Tener cuenta en GitHub https://github.com/
Tener cuenta en Heroku https://www.heroku.com/
Instalar Heroku CLI https://devcenter.heroku.com/articles/heroku-cli#download-and-install
Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 7
Capítulo 1
Implementación
Abrimos el STS y creamos un proyecto con Spring starter Project
Le colocamos un nombre y descripción a nuestro proyecto
Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 8
Y escogemos las siguientes dependencias
Creamos nuestra clase Controler que se encargara de mostrar nuestra lista de
Invitados
Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 9
Creamos nuestra página html com Thymeleaf dentro de la carpeta
resources/templates
Importante:
El nombre de nuestra página html tiene que coincidir con el nombre que devuelve
nuestro controller
El código de nuestra página debería quedar como sigue:
Los links de boostrap lo puedes copiar del siguiente enlace:
Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 10
https://getbootstrap.com/docs/3.4/getting-started/
Adicionalmente configuramos en nuestro application.properties lo siguiente:
Nota: Por el momento eliminamos la dependencia JPA y h2 que se agregó al inicio, ya
que lo usaremos más adelante
Guardamos y levantamos nuestro proyecto con Spring Boot
Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 11
Probamos accediendo mediante nuestro browser preferido, en mi caso Google
Chrome
No olvidar adicionar la dependencia JPA y H2 que eliminamos temporalmente.
Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 12
Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 13
Creamos una entidad Invitado con los siguientes atributos dentro de un paquete
model
Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 14
Adicionamos sus gets y sets respectivamente,
Creamos una interfaz Invitados dentro del paquete repositorio
Ahora modificamos nuestro controller para que devuelva una lista de invitados, de tipo
ModelAndView
Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 15
Luego modificamos nuestra página html para mostrar nuestra lista de invitados
Creamos un script para insertar ciertos datos en nuestra tabla invitados, y luego
colocaremos dicho script en la carpeta src/main/resources
Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 16
Volvemos a ejecutar la instancia con Spring Boot, y probamos accediendo mediante
nuestro browser preferido
Ahora vamos a crear la funcionalidad de poder crear invitados, para eso modificamos
nuestra página html e incluimos un formulario dentro del cuerpo del panel
Lo primero que haremos es usar un objeto de tipo CommandObject que pasaremos
mediante el método listar de nuestra clase Controller, dicho objeto será encargado de
setear los valores ingresados en los campos del formulario y devolver dicho objeto
como una instancia de la clase Invitado
Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 17
Luego para enviar los datos ingresados, definimos en nuestro action el path al que
queremos que se direccione
Para eso en nuestra clase controller, necesitamos crear el método que recibirá la
instancia de nuestra clase Invitado
Guardamos y volvemos a desplegar el proyecto con Spring Boot
Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 18
Nota: Antes de probar la funcionalidad de crear un invitado es necesario, eliminar el
archivo import.sql
Reiniciamos la instancia con Spring Boot, y ya podríamos crear y listar nuestros
invitados
Ahora vamos a utilizar un motor de base de datos más robusto como MySQL que ya
deberíamos tener instalado, para eso creamos una base de datos y una tabla que es
donde guardaremos la información del invitado
Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 19
Agregamos la dependencia en nuestro pom.xml
Y configuramos nuestro application.properties para que apunte a la base de datos
recientemente creada
Desplegamos nuevamente y probamos
Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 20
Ahora agregamos seguridad con spring security, para eso agregamos la siguiente
dependencia
Con eso solo podemos acceder a nuestra aplicación mediante el usuario por defecto
user y con el password que se genera automáticamente en nuestra consola
Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 21
Si queremos personalizar los usuarios a conectarse tendremos que implementar la
clase InMemorySecurityConfig dentro del paquete config, en la cual configuramos los
usuarios que queremos que accedan a nuestra aplicación
Luego desplegamos y probamos nuevamente nuestra aplicación
Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 22
Configurando el LOG en nuestra aplicación por buenas prácticas, para este caso
escogeremos LOG4j. Agregamos la dependencia en nuestro pom.xml
Nota: Excluimos el LOG4J en algunas dependencias ya que de no ser así, generara
conflicto de duplicidad posteriormente.
Luego adicionamos nuestro archivo log4j2.xml
Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 23
Acá es opcional si queremos que pinte en consola o escriba en un archivo, para este
caso escogemos lo primero:
Y listo ya podemos usar nuestro logger para escribir nuestros mensajes en la aplicación
Hasta ahora habíamos usado la dependencia spring data jpa, y habíamos usado la
interfaz JPA Repository, donde usábamos los métodos por defectos que implementaba
la interfaz, si bien es cierto esto nos reducía bastante el desarrollo, era una caja negra
lo que será poco mantenible al momento de llevarlo a HEROKU.
Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 24
Debido a eso eliminamos la dependencia spring data jpa y adicionamos spring boot
starter jdbc
Creamos nuestras interfaces Services y DAO; así como sus implementaciones
Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 25
También eliminamos la interfaz Invitados ya que no la usaremos más, en su lugar
implementaremos la interfaz RowMapper
También actualizamos nuestra clase invitado dentro del paquete model, y quitamos la
anotación entity y las anotaciones de sus atributos, agregamos los constructores y el
método toString por defecto y mantenemos sus getter y setters
Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 26
Bien luego de los cambios, usaremos PostGresSQL en lugar de MYSQL, ya explicaremos
porque en la parte de publicación. Agregamos la dependencia correspondiente y
modificamos nuestro application.properties
Previamente, tenemos que tener creada nuestra base de datos fiesta y nuestra tabla
invitado en dicha motor de Base de datos.
Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 27
Nota: En nuestros archivos controller y html debería ser transparente el cambio, por lo
que no surge realizar ningún cambio.
Probamos nuevamente y ya debería estar grabando y listando en PostgresSQL
Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 28
Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 29
Capítulo 2
Publicación
Ahora vamos a desplegar nuestra aplicación en un PAAS, es decir en la nube, para este
taller hemos seleccionado Heroku por su simplicidad. Para eso tenemos que tener
previamente tener una cuenta creada de tipo free, es decir una cuenta en la que no
sea necesario ingresar algún método de pago, pero debido a eso Heroku nos obliga a
usar solo Base de Datos Postgress, esta es la razón por la migración realizada
anteriormente, en caso quieren trabajar con MYSQL, es necesario contar con una
cuenta con opción de pago en HEROKU.
Seguidamente, creamos el archivo heroku-db.properties en el paquete resources
Luego para subir un proyecto en Heroku, es necesario crear un archivo Procfile (sin
extensión) que deberá estar ubicado en la raíz de nuestro proyecto
Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 30
Ahora para que Heroku, pueda compilar y publicar nuestro proyecto, hace uso de GIT,
no entraremos en detalle a explicar sobre esta herramienta de versionamiento ya que
no es parte del tutorial y asumimos que ya lo tienen previamente instalado. Abrimos el
Git Bash y nos ubicamos en la ruta donde se encuentran nuestros archivos
Una vez ubicado en la ruta, inicializamos GIT, adicionamos los archivos y realizamos el
commit respectivo
Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 31
Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 32
Ahora es necesario tener una cuenta en Heroku y tener instalado heroku CLI en
nuestra PC
Adicionamos la base de datos postgressSQL
Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 33
Finalmente enviamos el código a la rama master mediante HEROKU, usando GIT
Como vemos a continuación, se ha generado un deployado nuestra aplicación en el
dashboard de Heroku
Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 34
Se queremos más detalle sobre la configuración en Heroku podemos ingresar a la
interfaz visual que nos provee este
Ingresamos a la url generado en el deployment como sigue a continuación:
Para ver el log, ingresamos el siguiente comando
Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 35
IMPORTANTE
Ya que solo se ha configurado nuestra base de datos fiesta en HEROKU, tenemos que
vía comando crear nuestra tabla invitado, pero antes tenemos que asegurarnos que en
nuestro PATH de Windows o LINUX, tengamos configuramos la carpeta donde está
instalado nuestro POSTGRESS.
Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 36
Como vemos esta es nuestra base de datos de la nuestra aplicación qu-gestion-fiesta
https://data.heroku.com/
Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 37
Mayor detallle de los comandos para interactuar con nuestra base de datos postgress
desde heroku cli, lo pueden encontrar en:
https://devcenter.heroku.com/articles/heroku-postgresql#local-setup
https://devcenter.heroku.com/categories/data-management
https://devcenter.heroku.com/articles/heroku-postgresql
Finalmente ya inserta y lista nuestros invitados usando un PAAS como es HEROKU
Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 38
Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 39
Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 40
Capítulo 3
Conclusiones/Recomendaciones
Tener una consola abierta para el login en HEROKU, otra para ver los logs de la
aplicación, otra para ver los logs de la base de datos y otra para la configuración de
nuestra base de datos, como se aprecia a continuación:
Todos deben ser abiertos, desde la carpeta donde están nuestros archivos de la
aplicación
Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 41

Más contenido relacionado

Similar a Ebook tutorialspringbootheroku

Reportes En J Developer Parte 1 Y 2
Reportes En J Developer   Parte 1 Y 2Reportes En J Developer   Parte 1 Y 2
Reportes En J Developer Parte 1 Y 2
Steven Gomez
 
Hands-on Spring 3: The next generation
Hands-on Spring 3: The next generationHands-on Spring 3: The next generation
Hands-on Spring 3: The next generation
Sergi Almar i Graupera
 

Similar a Ebook tutorialspringbootheroku (20)

Mi app-asp-net-mvc2
Mi app-asp-net-mvc2Mi app-asp-net-mvc2
Mi app-asp-net-mvc2
 
Mvc
MvcMvc
Mvc
 
Spring mvc
Spring mvcSpring mvc
Spring mvc
 
Reportes En J Developer Parte 1 Y 2
Reportes En J Developer   Parte 1 Y 2Reportes En J Developer   Parte 1 Y 2
Reportes En J Developer Parte 1 Y 2
 
Spring mvc
Spring mvcSpring mvc
Spring mvc
 
Php Bitter Sweet Symfony!
Php Bitter Sweet Symfony!Php Bitter Sweet Symfony!
Php Bitter Sweet Symfony!
 
Spring Mvc Final
Spring Mvc FinalSpring Mvc Final
Spring Mvc Final
 
Conexion mysql con java usando netbeans
Conexion mysql con java usando netbeansConexion mysql con java usando netbeans
Conexion mysql con java usando netbeans
 
Primeros pasos con Backbone js, por Xavier Aznar
Primeros pasos con Backbone js, por Xavier AznarPrimeros pasos con Backbone js, por Xavier Aznar
Primeros pasos con Backbone js, por Xavier Aznar
 
Evolution INTech - Acceso a bases de datos con Minimal APIs de .NET 6.pptx
Evolution INTech - Acceso a bases de datos con Minimal APIs de .NET 6.pptxEvolution INTech - Acceso a bases de datos con Minimal APIs de .NET 6.pptx
Evolution INTech - Acceso a bases de datos con Minimal APIs de .NET 6.pptx
 
"Los Imprescindibles de .NetCore"
"Los Imprescindibles de .NetCore""Los Imprescindibles de .NetCore"
"Los Imprescindibles de .NetCore"
 
Hands-on Spring 3: The next generation
Hands-on Spring 3: The next generationHands-on Spring 3: The next generation
Hands-on Spring 3: The next generation
 
Linq to sql 7
Linq to sql 7Linq to sql 7
Linq to sql 7
 
Asp.net
Asp.netAsp.net
Asp.net
 
ASP.NET Guia de desarrollo de sitios y aplicaciones web dinamicas
ASP.NET Guia de desarrollo de sitios y aplicaciones web dinamicasASP.NET Guia de desarrollo de sitios y aplicaciones web dinamicas
ASP.NET Guia de desarrollo de sitios y aplicaciones web dinamicas
 
Dynamics crm-es
Dynamics crm-esDynamics crm-es
Dynamics crm-es
 
Curso de Desarrollo Web 2
Curso de Desarrollo Web 2Curso de Desarrollo Web 2
Curso de Desarrollo Web 2
 
Servicios web
Servicios webServicios web
Servicios web
 
Aprendiendo AWS Lambda con API Gateway y DynamoDB
Aprendiendo AWS Lambda con API Gateway y DynamoDBAprendiendo AWS Lambda con API Gateway y DynamoDB
Aprendiendo AWS Lambda con API Gateway y DynamoDB
 
Spring framework
Spring frameworkSpring framework
Spring framework
 

Ebook tutorialspringbootheroku

  • 1. QUARKS TRAINING CENTER PROYECTO GESTION DE INVITADOS Desarrollo de Aplicaciones Web con Spring MVC, Spring Data, Spring Security y Spring Boot Renato De La Rosa Castillo 18/05/2019 Tutorial practico para crear un mantenimiento de invitados usando Spring MVC, Spring Data, Spring Boot, Spring Security y Boostrap con Thymeleaf desplegado en un PAAS como HEROKU, usando como IDE STS 3.9
  • 2. Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 2 Desarrollo de Aplicaciones Web con Spring MVC, Spring Data, Spring Security y Spring Boot 1ª Edición, 18/05/2019 © 2019 Quarks Training Center. Todos los derechos reservados. Ninguna parte de este libro puede ser reproducida o transmitida en cualquier forma, sea por medio electrónico o mecánico, sin permiso por escrito de Quarks Training Center, excepto para resúmenes breves en revisiones y análisis. Quarks Training Center www.quarks.com.pe informes@quarks.com.pe +51 974926174 Síganos en las redes sociales y mantente al tanto de las novedades! FACEBOOK YOUTUBE
  • 3. Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 3 Sobre el autor Renato De La Rosa Instructor JAVA en Quarks Training Center, graduado en Ingeniería de computación y sistemas, cuenta con un post-grado en la Universidad Federal de Sao Paulo, con más de 8 años desarrollando en tecnología JAVA en empresas del sector público y privado. Apasionante de la tecnología y autodidacta.
  • 4. Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 4 Tabla de contenido Glosario......................................................................................................................................... 5 Requisitos...................................................................................................................................... 6 Implementación............................................................................................................................ 7 Publicación.................................................................................................................................. 29 Conclusiones/Recomendaciones ............................................................................................... 40
  • 5. Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 5 GLOSARIO MVC Modelo Vista Controlador PAAS Plataforma como Servicio STS Spring Tool Suite
  • 6. Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 6 REQUISITOS Instalar JDK 1.8 https://www.java.com/es/download/ Descargar STS para Windows desde https://spring.io/tools3/sts/all Descargar MySQL para Windows desde https://dev.mysql.com/downloads/mysql/5.6.html Descargar Postgres para Windows desde https://www.postgresql.org/download/windows/ Descargar GIT para Windows desde https://git-scm.com/download/win Tener cuenta en GitHub https://github.com/ Tener cuenta en Heroku https://www.heroku.com/ Instalar Heroku CLI https://devcenter.heroku.com/articles/heroku-cli#download-and-install
  • 7. Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 7 Capítulo 1 Implementación Abrimos el STS y creamos un proyecto con Spring starter Project Le colocamos un nombre y descripción a nuestro proyecto
  • 8. Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 8 Y escogemos las siguientes dependencias Creamos nuestra clase Controler que se encargara de mostrar nuestra lista de Invitados
  • 9. Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 9 Creamos nuestra página html com Thymeleaf dentro de la carpeta resources/templates Importante: El nombre de nuestra página html tiene que coincidir con el nombre que devuelve nuestro controller El código de nuestra página debería quedar como sigue: Los links de boostrap lo puedes copiar del siguiente enlace:
  • 10. Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 10 https://getbootstrap.com/docs/3.4/getting-started/ Adicionalmente configuramos en nuestro application.properties lo siguiente: Nota: Por el momento eliminamos la dependencia JPA y h2 que se agregó al inicio, ya que lo usaremos más adelante Guardamos y levantamos nuestro proyecto con Spring Boot
  • 11. Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 11 Probamos accediendo mediante nuestro browser preferido, en mi caso Google Chrome No olvidar adicionar la dependencia JPA y H2 que eliminamos temporalmente.
  • 12. Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 12
  • 13. Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 13 Creamos una entidad Invitado con los siguientes atributos dentro de un paquete model
  • 14. Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 14 Adicionamos sus gets y sets respectivamente, Creamos una interfaz Invitados dentro del paquete repositorio Ahora modificamos nuestro controller para que devuelva una lista de invitados, de tipo ModelAndView
  • 15. Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 15 Luego modificamos nuestra página html para mostrar nuestra lista de invitados Creamos un script para insertar ciertos datos en nuestra tabla invitados, y luego colocaremos dicho script en la carpeta src/main/resources
  • 16. Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 16 Volvemos a ejecutar la instancia con Spring Boot, y probamos accediendo mediante nuestro browser preferido Ahora vamos a crear la funcionalidad de poder crear invitados, para eso modificamos nuestra página html e incluimos un formulario dentro del cuerpo del panel Lo primero que haremos es usar un objeto de tipo CommandObject que pasaremos mediante el método listar de nuestra clase Controller, dicho objeto será encargado de setear los valores ingresados en los campos del formulario y devolver dicho objeto como una instancia de la clase Invitado
  • 17. Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 17 Luego para enviar los datos ingresados, definimos en nuestro action el path al que queremos que se direccione Para eso en nuestra clase controller, necesitamos crear el método que recibirá la instancia de nuestra clase Invitado Guardamos y volvemos a desplegar el proyecto con Spring Boot
  • 18. Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 18 Nota: Antes de probar la funcionalidad de crear un invitado es necesario, eliminar el archivo import.sql Reiniciamos la instancia con Spring Boot, y ya podríamos crear y listar nuestros invitados Ahora vamos a utilizar un motor de base de datos más robusto como MySQL que ya deberíamos tener instalado, para eso creamos una base de datos y una tabla que es donde guardaremos la información del invitado
  • 19. Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 19 Agregamos la dependencia en nuestro pom.xml Y configuramos nuestro application.properties para que apunte a la base de datos recientemente creada Desplegamos nuevamente y probamos
  • 20. Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 20 Ahora agregamos seguridad con spring security, para eso agregamos la siguiente dependencia Con eso solo podemos acceder a nuestra aplicación mediante el usuario por defecto user y con el password que se genera automáticamente en nuestra consola
  • 21. Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 21 Si queremos personalizar los usuarios a conectarse tendremos que implementar la clase InMemorySecurityConfig dentro del paquete config, en la cual configuramos los usuarios que queremos que accedan a nuestra aplicación Luego desplegamos y probamos nuevamente nuestra aplicación
  • 22. Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 22 Configurando el LOG en nuestra aplicación por buenas prácticas, para este caso escogeremos LOG4j. Agregamos la dependencia en nuestro pom.xml Nota: Excluimos el LOG4J en algunas dependencias ya que de no ser así, generara conflicto de duplicidad posteriormente. Luego adicionamos nuestro archivo log4j2.xml
  • 23. Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 23 Acá es opcional si queremos que pinte en consola o escriba en un archivo, para este caso escogemos lo primero: Y listo ya podemos usar nuestro logger para escribir nuestros mensajes en la aplicación Hasta ahora habíamos usado la dependencia spring data jpa, y habíamos usado la interfaz JPA Repository, donde usábamos los métodos por defectos que implementaba la interfaz, si bien es cierto esto nos reducía bastante el desarrollo, era una caja negra lo que será poco mantenible al momento de llevarlo a HEROKU.
  • 24. Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 24 Debido a eso eliminamos la dependencia spring data jpa y adicionamos spring boot starter jdbc Creamos nuestras interfaces Services y DAO; así como sus implementaciones
  • 25. Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 25 También eliminamos la interfaz Invitados ya que no la usaremos más, en su lugar implementaremos la interfaz RowMapper También actualizamos nuestra clase invitado dentro del paquete model, y quitamos la anotación entity y las anotaciones de sus atributos, agregamos los constructores y el método toString por defecto y mantenemos sus getter y setters
  • 26. Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 26 Bien luego de los cambios, usaremos PostGresSQL en lugar de MYSQL, ya explicaremos porque en la parte de publicación. Agregamos la dependencia correspondiente y modificamos nuestro application.properties Previamente, tenemos que tener creada nuestra base de datos fiesta y nuestra tabla invitado en dicha motor de Base de datos.
  • 27. Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 27 Nota: En nuestros archivos controller y html debería ser transparente el cambio, por lo que no surge realizar ningún cambio. Probamos nuevamente y ya debería estar grabando y listando en PostgresSQL
  • 28. Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 28
  • 29. Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 29 Capítulo 2 Publicación Ahora vamos a desplegar nuestra aplicación en un PAAS, es decir en la nube, para este taller hemos seleccionado Heroku por su simplicidad. Para eso tenemos que tener previamente tener una cuenta creada de tipo free, es decir una cuenta en la que no sea necesario ingresar algún método de pago, pero debido a eso Heroku nos obliga a usar solo Base de Datos Postgress, esta es la razón por la migración realizada anteriormente, en caso quieren trabajar con MYSQL, es necesario contar con una cuenta con opción de pago en HEROKU. Seguidamente, creamos el archivo heroku-db.properties en el paquete resources Luego para subir un proyecto en Heroku, es necesario crear un archivo Procfile (sin extensión) que deberá estar ubicado en la raíz de nuestro proyecto
  • 30. Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 30 Ahora para que Heroku, pueda compilar y publicar nuestro proyecto, hace uso de GIT, no entraremos en detalle a explicar sobre esta herramienta de versionamiento ya que no es parte del tutorial y asumimos que ya lo tienen previamente instalado. Abrimos el Git Bash y nos ubicamos en la ruta donde se encuentran nuestros archivos Una vez ubicado en la ruta, inicializamos GIT, adicionamos los archivos y realizamos el commit respectivo
  • 31. Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 31
  • 32. Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 32 Ahora es necesario tener una cuenta en Heroku y tener instalado heroku CLI en nuestra PC Adicionamos la base de datos postgressSQL
  • 33. Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 33 Finalmente enviamos el código a la rama master mediante HEROKU, usando GIT Como vemos a continuación, se ha generado un deployado nuestra aplicación en el dashboard de Heroku
  • 34. Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 34 Se queremos más detalle sobre la configuración en Heroku podemos ingresar a la interfaz visual que nos provee este Ingresamos a la url generado en el deployment como sigue a continuación: Para ver el log, ingresamos el siguiente comando
  • 35. Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 35 IMPORTANTE Ya que solo se ha configurado nuestra base de datos fiesta en HEROKU, tenemos que vía comando crear nuestra tabla invitado, pero antes tenemos que asegurarnos que en nuestro PATH de Windows o LINUX, tengamos configuramos la carpeta donde está instalado nuestro POSTGRESS.
  • 36. Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 36 Como vemos esta es nuestra base de datos de la nuestra aplicación qu-gestion-fiesta https://data.heroku.com/
  • 37. Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 37 Mayor detallle de los comandos para interactuar con nuestra base de datos postgress desde heroku cli, lo pueden encontrar en: https://devcenter.heroku.com/articles/heroku-postgresql#local-setup https://devcenter.heroku.com/categories/data-management https://devcenter.heroku.com/articles/heroku-postgresql Finalmente ya inserta y lista nuestros invitados usando un PAAS como es HEROKU
  • 38. Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 38
  • 39. Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 39
  • 40. Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 40 Capítulo 3 Conclusiones/Recomendaciones Tener una consola abierta para el login en HEROKU, otra para ver los logs de la aplicación, otra para ver los logs de la base de datos y otra para la configuración de nuestra base de datos, como se aprecia a continuación: Todos deben ser abiertos, desde la carpeta donde están nuestros archivos de la aplicación
  • 41. Tutorial Spring MVC, Spring Boot, Spring Data, Spring Security Página 41