En esta página:
Demo
El Lenguaje de Programación Java es uno de los más robustos en la industria del Desarrollo de Software y Spring Framework opto bien en elegirlo para desarrollar aplicaciones web, pero es
importante primero aprender a realizar operaciones CRUD (Create, Read, Update y Delete) antes de crear aplicaciones más avanzadas y en este tutorial te enseñare a crear un sistema CRUD con Spring Framework, MySQL y Bootstrap, vamos con ello.
Partes
Antes de continuar con este Post, te invito a leer los siguientes artículos:
- Que es Spring Framework y Otros Detalles
- 5 Consejos para escribir Controladores Spring MVC
- Como funciona la anotación @Value en Spring
- Cual es la diferencia entre Spring (Framework) y Spring Boot
- Como Crear Nuestra Primera Aplicación Básica con Spring Framework – Parte 1
- Puedes leer más en la categoría Spring
Asimismo te invito a escuchar el Podcast: “Con Que Lenguaje De Programación Comenzar Para El Desarrollo Web”:
Spotify: | Sound Cloud: | Apple Podcasts |
Bien ahora continuemos con el Post: Como crear un CRUD con Spring Framework 5.2.13 y Bootstrap 4.6 – Parte 1.
Lo primero que haremos es crear un nuevo proyecto, hasta la fecha de este Post, Spring nos brinda una herramienta en su sitio web llamada Spring Initializr que nos crea rápidamente un proyecto con Spring Framework.
Creación de Nuevo Proyecto
Voy a la página oficial de Spring Framework y hago clic en el botón que dice QUICKSTAR.
En la siguiente página, nos aparece una recomendación de Spring sobre las herramientas que son necesarias tener para el trabajo con Spring Framework y debajo en el Paso 1 (Step 1) nos aparece un enlace que dice start.spring.io, hacemos clic en este enlace.
En la siguiente página nos carga Spring Initializr, un entorno o herramienta en donde configuraré y crearé mi nuevo proyecto. En las opciones elegiré Maven Project, en Language selección Java, en la parte de Spring Boot elijo 2.4.3 y debajo en Project Metadata en Group le coloco com.sistemacrud, en Artifact y Name le pongo crud, en Packaging elijo Jar y por último en versión de Java elijo 11.
Antes de generar el proyecto voy a agregar algunas dependencias importantes para trabajar con spring Framework. En la parte de derecha hago clic en el botón que dice ADD DEPENDENCIES… CTRL + B
Voy a buscar y agregar las dependencias que creo son necesarias para trabajar sin problemas en mi sistema CRUD, estas son Spring Web y Spring Boot DevTools. Más adelante agregaré otras dependencias dentro de mi archivo pom.xml
Por ultimo presiono el botón que se encuentra en la parte inferior y dice GENERATE CTRL + ⏎ para exportar el proyecto, se me descargará un archivo en formato ZIP.
Abro el archivo que se me ha descargado y extraigo todos los archivos en mi computadora, tendremos un conjunto de directorios y archivos indispensables para que el proyecto funcione sin problemas.
1 2 3 4 5 6 7 8 9 10 11 |
/sistemacrud ├── /.mvn ├── /src ├── /target ├── .gitignore ├── HELP.md ├── mvnw ├── mvnw.cmd ├── porn.xml |
Ahora voy a realizar una configuración para levantar el proyecto y verificar si este esta funcionando correctamente, si es así, entonces puedo continuar desarrollando mi sistema CRUD sin problemas.
Abro el archivo llamado SistemacrudApplication.java que se encuentra en sistemacrud > src > main > java > com > sistemacrud > sistemacrud > SistemacrudApplication.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
/sistemacrud ├── /.mvn ├── /src ├── /main ├── /java ├── /com ├── /sistemacrud ├── /sistemacrud ├── SistemacrudApplication.java // Abro este Archivo ├── /target ├── .gitignore ├── HELP.md ├── mvnw ├── mvnw.cmd ├── porn.xml |
Dentro del archivo SistemacrudApplication.java agrego la siguientes dependencias en la parte superior.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
package com.sistemacrud.sistemacrud; // Dependencias import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; // Anotaciones import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; |
Luego dentro de mi clase SistemacrudApplication agrego una ruta a la Página Principal con un mensaje que dice Hola Soy un Sistema CRUD !.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
@SpringBootApplication @RestController public class SistemacrudApplication { public static void main(String[] args) { SpringApplication.run(SistemacrudApplication.class, args); } // Ruta a la Página Principal @GetMapping("/") public String mensaje(@RequestParam(value = "saludo", defaultValue = "Soy un Sistema CRUD") String saludo) { return String.format("<h1>Hola %s ! </h1>", saludo); } } |
A continuación el código completo del archivo SistemacrudApplication.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
package com.sistemacrud.sistemacrud; // Dependencias import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; // Anotaciones import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication @RestController public class SistemacrudApplication { public static void main(String[] args) { SpringApplication.run(SistemacrudApplication.class, args); } // Ruta a la Página Principal @GetMapping("/") public String mensaje(@RequestParam(value = "saludo", defaultValue = "Soy un Sistema CRUD") String saludo) { return String.format("<h1>Hola %s ! </h1>", saludo); } } |
Abro mi consola de comandos en el directorio del proyecto e inicio el servidor local de Spring Framework, ejecutando el siguiente comando.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# Iniciar Servidor de Spring Framework ./mvnw spring-boot:run [INFO] Scanning for projects... [INFO] [INFO] --------------------< com.sistemacrud:sistemacrud >--------------------- [INFO] Building sistemacrud 0.0.1-SNAPSHOT [INFO] --------------------------------[ jar ]--------------------------------- [INFO] [INFO] >>> spring-boot-maven-plugin:2.5.2:run (default-cli) > test-compile @ sistemacrud >>> [INFO] [INFO] --- maven-resources-plugin:3.2.0:resources (default-resources) @ sistemacrud --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Using 'UTF-8' encoding to copy filtered properties files. [INFO] Copying 1 resource [INFO] Copying 0 resource [INFO] [INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ sistemacrud --- [INFO] Nothing to compile - all classes are up to date [INFO] [INFO] --- maven-resources-plugin:3.2.0:testResources (default-testResources) @ sistemacrud --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Using 'UTF-8' encoding to copy filtered properties files. [INFO] skip non existing resourceDirectory E:\xampp\htdocs\xampp\nc\tutoriales\blog\sistemacrud\src\test\resources [INFO] [INFO] --- maven-compiler-plugin:3.8.1:testCompile (default-testCompile) @ sistemacrud --- [INFO] Changes detected - recompiling the module! [INFO] Compiling 1 source file to E:\xampp\htdocs\xampp\nc\tutoriales\blog\sistemacrud\target\test-classes [INFO] [INFO] <<< spring-boot-maven-plugin:2.5.2:run (default-cli) < test-compile @ sistemacrud <<< [INFO] [INFO] [INFO] --- spring-boot-maven-plugin:2.5.2:run (default-cli) @ sistemacrud --- [INFO] Attaching agents: [] . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v2.5.2) 2021-06-28 15:29:01.013 INFO 256 --- [ restartedMain] c.s.sistemacrud.SistemacrudApplication : Starting SistemacrudApplication using Java 16.0.1 on DESKTOP-HHKT0VD with PID 256 (E:\xampp\htdocs\xampp\nc\tutoriales\blog\sistemacrud\target\classes started by JC in E:\xampp\htdocs\xampp\nc\tutoriales\blog\sistemacrud) 2021-06-28 15:29:01.015 INFO 256 --- [ restartedMain] c.s.sistemacrud.SistemacrudApplication : No active profile set, falling back to default profiles: default 2021-06-28 15:29:01.086 INFO 256 --- [ restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : Devtools property defaults active! Set 'spring.devtools.add-properties' to 'false' to disable 2021-06-28 15:29:01.086 INFO 256 --- [ restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG' 2021-06-28 15:29:02.068 INFO 256 --- [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http) 2021-06-28 15:29:02.080 INFO 256 --- [ restartedMain] o.apache.catalina.core.StandardService : Starting service [Tomcat] 2021-06-28 15:29:02.080 INFO 256 --- [ restartedMain] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.48] 2021-06-28 15:29:02.167 INFO 256 --- [ restartedMain] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext 2021-06-28 15:29:02.167 INFO 256 --- [ restartedMain] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 1080 ms 2021-06-28 15:29:02.480 INFO 256 --- [ restartedMain] o.s.b.d.a.OptionalLiveReloadServer : LiveReload server is running on port 35729 2021-06-28 15:29:02.535 INFO 256 --- [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path '' 2021-06-28 15:29:02.545 INFO 256 --- [ restartedMain] c.s.sistemacrud.SistemacrudApplication : Started SistemacrudApplication in 1.928 seconds (JVM running for 2.454) 2021-06-28 15:29:05.475 INFO 256 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet' 2021-06-28 15:29:05.476 INFO 256 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet' 2021-06-28 15:29:05.477 INFO 256 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 1 ms |
Entonces si voy a la ruta local http://localhost:8080/ debo de ver el mensaje respectivo y confirmo que el proyecto se ha creado correctamente.
Muy bien, hasta aquí llegamos con esta primera parte del tutorial en donde he creado un Nuevo Proyecto para el sistema CRUD en Spring Framework.
Ten Paciencia, lo que quiero es que conozcas bien como se crea este proyecto y no llenarte el capitulo de mucho contenido porque te puedes marear y no tendrás un óptimo aprendizaje.
Nota (s)
- En la siguiente parte vamos a configurar la base de datos MySQL con la tabla y sus campos respectivos.
- Los pasos mencionados en este tutorial pueden cambiar en un futuro, esto no depende de mi, si no de la organización que da soporte a Spring Framework, que suele cambiar el orden y las opciones de su herramienta.
- No olvides que debemos usar la Tecnología para hacer cosas Buenas por el Mundo.
Síguenos en nuestras Redes Sociales para que no te pierdas nuestros próximos contenidos.