¡Hola a todos!
Sé que en estos momentos, el blog va a cambiar notablemente la temática original del post; máxime de que en estos momentos se dedicará a realizar mis aportes en el campo del Desarrollo de Software. No obstante, durante los próximos artículos que se harán en el blog, serán transformados de una manera clara y precisa durante los vídeos de mi canal de YouTube, refutando lo anteriormente dicho al inicio de este párrafo; no se trata de hacer un descarado copy-paste de cualquier artículo que uno encuentra por ahí, porque, esto ya es de conocimiento público, que todo material será previamente preparado y redactado en este blog.
De acuerdo con el párrafo anterior, vamos a desarrollar una API Rest con el framework de Spring Boot.
Nosotros crearemos un proyecto a nivel elemental para familiarizarnos con el framework de Spring Boot, que consiste principalmente en la implementación de un CRUD, ahora bien; para los que se sienten un poco novatos en este asunto, les tendremos un breve resumen sobre estas siglas:
"Un CRUD, viene del acrónimo en inglés Create (Crear), Read (Leer), Update(Actualizar), y Delete (Borrar), son las funciones o tareas básicas de una base de datos, o bien de una capa de persistencia de datos perse"
En este artículo nos concentraremos en el diseño de la etapa del Modelo, que consiste nada más y nada menos que un POJO (Plain Old Java Object), un POJO es un archivo Java que contiene clases, atributos y sus respectivoas Getters y Setters, para lograr ahondar mas el tema de los Getters y Setters, los dejaré en un futuro a corto plazo, las explicaciones sobre la Programación Orientada a Objetos en dónde tocaremos este tema.
Antes de arrancar con el tema, vamos a crear un nuevo proyecto desde el sitio web https://start.spring.io/, siguiendo las siguientes indicaciones que les diré a continuación, para la creación de proyecto en mención, por ahora nos dedicaremos a crear esto basándose en el gestor de dependencias de Maven.
Después de escribir este sitio web, nos aparece una imagen de este aspecto:
![]() | |
| Fig 1. Spring Initializr |
Después de encontrarnos con este sitio web en dónde nos vamos a familiarizar en futuros proyectos con Spring Boot, pero para este primer programa; procederemos con seleccionar los siguientes componentes o requisitos:
- Project: Maven project
- Language: Java (Versión 17 siendo la más recomendada)
- Spring Boot: 2.7.4 version
Después de seleccionar los requisitos principales, procederemos a seleccionar los siguientes metadatos:
![]() | |
| Fig 2. Metadatos |
Nosotros como vamos a desarrollar el proyecto utilizando el gestor de dependencias de Maven, nos ubicaremos en el área de Dependences, o bien presionando Ctrl+B (Haciendo clic en Add dependencies nos vendría bien), para seleccionar las siguientes dependencias para dar el primer paso:
![]() |
| Fig. 3 - Listado de dependencias (faltaba incluir la de Spring Web) |
| Fig 5. - Ventana principal de IntelliJ IDEA Community edition |
| Fig 6 - Ventana de advertencia que nos avisa al usuario si el proyecto es confiable o no |
| Fig 7. - Cuadro izquierdo que aparece en el IntelliJ IDEA |
- SRC: Es un directorio en dónde tienes alojado el código fuente del aplicativo en Spring Boot, dentro de SRC está las carpetas main y resources, en el main es dónde aparece el archivo BasicCrudApplication en dónde podemos ejectuar, en la carpeta de "resources", ahí nos aparece el archivo "aplication.properties" en dónde nos vamos a poner la configuración para que nuestro aplicativo pueda correr sin mayores inconvenientes; en todo caso, es el inicio de nuestro proyecto que es, un formulario CRUD.
- Test: La carpeta test contiene los archivos necesarios para realizar las diferentes pruebas unitarias de acuerdo con lo que solicita o emplea el desarrollador.
- Mvnw.cmd y mvnw: Son los ejecutables del proyecto de Spring boot, empleados bajo el gestor de dependencias de Maven, el primero es exclusivamente para la plataforma Windows, y la última para sistemas UNIX (Linux y Mac).
- Pom.xml: Este archivo en partícular, es el directo responsable de "almacenar y agregar mas" las dependencias en el gestor de Maven, es un archivo del tipo xml, cuya estructura es en parte similar al HTML, el contenido de este pom.xml se muestra a continuación:
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"La configuración del aplication.properties se hace de la siguiente manera:
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.4</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.toadsdewin</groupId>
<artifactId>basicCrud</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>basicCrud</name>
<description>This is the first project for YouTube</description>
<properties>
<java.version>17</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
spring.jpa.hibernate.ddl-auto=create-drop
spring.datasource.url=jdbc:mysql://localhost:3306/crudYT
spring.datasource.username=root
spring.datasource.password= d3w1n@c0st4-0721
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.show-sql: true
package com.toadsdewin.basicCrud.UserModel;
import javax.persistence.*;
@Entity
@Table(name = "users")
public class UserModel
{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(unique = true, nullable = false, length = 10)
private Long id;
private String name;
private String surname;
private String country;
private String occupation;
private Integer age;
private Integer phoneNumber;
public UserModel()
{
name = "John";
surname = "Doe";
occupation = "Developer";
age = 30;
phoneNumber= 5551234;
}
public UserModel (String name, String surname, String occupation, Integer age, Integer phoneNumber)
{
this.name = name;
this.surname = surname;
this.occupation = occupation;
this.age = age;
this.phoneNumber = phoneNumber;
}
public Long getId() {
return id;
}
public String getName() {
return name;
}
public String getSurname() {
return surname;
}
public String getCountry() {
return country;
}
public String getOccupation() {
return occupation;
}
public Integer getAge() {
return age;
}
public Integer getPhoneNumber() {
return phoneNumber;
}
public void setId(Long id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
public void setSurname(String surname) {
this.surname = surname;
}
public void setCountry(String country) {
this.country = country;
}
public void setOccupation(String occupation) {
this.occupation = occupation;
}
public void setAge(Integer age) {
this.age = age;
}
public void setPhoneNumber(Integer phoneNumber) {
this.phoneNumber = phoneNumber;
}
}
./mvnw.cmd spring-boot:run



