Cómo construir una aplicación Spring MVC utilizando Maven en IntelliJ IDEA

DockerDockerBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

Este tutorial lo guiará a través del proceso de creación de una aplicación Spring MVC utilizando Maven en el entorno de desarrollo IntelliJ IDEA. Cubriremos los pasos esenciales, desde la configuración del entorno de desarrollo hasta el aprovechamiento de Docker para la contenerización, para ayudarlo a comenzar a construir aplicaciones web modernas.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ImageOperationsGroup(["Image Operations"]) docker(("Docker")) -.-> docker/DockerfileGroup(["Dockerfile"]) docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker/ContainerOperationsGroup -.-> docker/run("Run a Container") docker/ContainerOperationsGroup -.-> docker/ls("List Containers") docker/ContainerOperationsGroup -.-> docker/ps("List Running Containers") docker/ContainerOperationsGroup -.-> docker/start("Start Container") docker/ContainerOperationsGroup -.-> docker/stop("Stop Container") docker/ContainerOperationsGroup -.-> docker/create("Create Container") docker/ImageOperationsGroup -.-> docker/pull("Pull Image from Repository") docker/DockerfileGroup -.-> docker/build("Build Image from Dockerfile") subgraph Lab Skills docker/run -.-> lab-411508{{"Cómo construir una aplicación Spring MVC utilizando Maven en IntelliJ IDEA"}} docker/ls -.-> lab-411508{{"Cómo construir una aplicación Spring MVC utilizando Maven en IntelliJ IDEA"}} docker/ps -.-> lab-411508{{"Cómo construir una aplicación Spring MVC utilizando Maven en IntelliJ IDEA"}} docker/start -.-> lab-411508{{"Cómo construir una aplicación Spring MVC utilizando Maven en IntelliJ IDEA"}} docker/stop -.-> lab-411508{{"Cómo construir una aplicación Spring MVC utilizando Maven en IntelliJ IDEA"}} docker/create -.-> lab-411508{{"Cómo construir una aplicación Spring MVC utilizando Maven en IntelliJ IDEA"}} docker/pull -.-> lab-411508{{"Cómo construir una aplicación Spring MVC utilizando Maven en IntelliJ IDEA"}} docker/build -.-> lab-411508{{"Cómo construir una aplicación Spring MVC utilizando Maven en IntelliJ IDEA"}} end

Introducción a Spring MVC

Spring MVC es un popular framework de aplicaciones web que forma parte del ecosistema Spring. Sigue el patrón arquitectónico Modelo-Vista-Controlador (MVC, por sus siglas en inglés), que separa la lógica de la aplicación en tres componentes interconectados: el modelo, la vista y el controlador.

¿Qué es Spring MVC?

Spring MVC es un framework de aplicaciones web basado en Java que proporciona un modelo de programación y configuración integral para la construcción de aplicaciones web. Simplifica el desarrollo de aplicaciones web al manejar las tareas y patrones comunes asociados con el desarrollo web, como el manejo de solicitudes, la representación de vistas y la vinculación de datos.

Componentes clave de Spring MVC

Los principales componentes del framework Spring MVC son:

  1. Modelo: El modelo representa los datos y la lógica de negocio de la aplicación. Es responsable de administrar los datos y el estado de la aplicación.

  2. Vista: La vista es responsable de representar la interfaz de usuario de la aplicación. Es responsable de presentar los datos al usuario y manejar las interacciones del usuario.

  3. Controlador: El controlador es el intermediario entre el modelo y la vista. Recibe las solicitudes del usuario, procesa los datos y los pasa a la vista para su representación.

graph LR A[Client] --> B[DispatcherServlet] B --> C[HandlerMapping] B --> D[Controller] D --> E[Model] D --> F[View] F --> A[Client]

Beneficios de usar Spring MVC

Algunos de los principales beneficios de usar Spring MVC son:

  1. Separación de responsabilidades: El patrón MVC promueve una clara separación de responsabilidades, lo que hace que el código sea más mantenible y testeable.
  2. Flexibilidad: Spring MVC proporciona una arquitectura flexible y configurable, lo que permite a los desarrolladores personalizar el framework para adaptarlo a sus necesidades específicas.
  3. Escalabilidad: Spring MVC está diseñado para ser escalable, lo que lo hace adecuado para la construcción de aplicaciones web a gran escala.
  4. Integración con otros módulos de Spring: Spring MVC se integra perfectamente con otros módulos de Spring, como Spring Security, Spring Data y Spring Boot, lo que proporciona una experiencia de desarrollo integral y coherente.

Al entender los conceptos y componentes básicos de Spring MVC, estará mejor preparado para construir aplicaciones web robustas y escalables utilizando este poderoso framework.

Configuración del entorno de desarrollo con IntelliJ IDEA

Para comenzar a construir una aplicación Spring MVC utilizando Maven en IntelliJ IDEA, necesitará configurar su entorno de desarrollo. Así es como puede hacerlo:

Instalación del Kit de Desarrollo de Java (JDK, por sus siglas en inglés)

Primero, necesitará instalar el Kit de Desarrollo de Java (JDK) en su sistema Ubuntu 22.04. Puede hacerlo ejecutando los siguientes comandos en su terminal:

sudo apt update
sudo apt install openjdk-11-jdk

Verifique la instalación comprobando la versión de Java:

java -version

Instalación de IntelliJ IDEA

A continuación, necesitará instalar IntelliJ IDEA, un popular Entorno de Desarrollo Integrado (IDE, por sus siglas en inglés) para el desarrollo de Java. Puede descargar la última versión de IntelliJ IDEA desde el sitio web oficial: https://www.jetbrains.com/idea/download/

Una vez completada la descarga, extraiga el archivo ZIP y ejecute el siguiente comando para iniciar el IDE:

./idea.sh

Configuración del proyecto Spring MVC

  1. Abra IntelliJ IDEA y cree un nuevo proyecto seleccionando "Create New Project" (Crear nuevo proyecto) desde la pantalla de bienvenida.
  2. Elija "Maven" como tipo de proyecto y haga clic en "Next" (Siguiente).
  3. Proporcione un nombre y una ubicación para el proyecto, luego haga clic en "Finish" (Finalizar).
  4. En la estructura del proyecto, haga clic derecho en la carpeta "src/main/java" y seleccione "New" (Nuevo) > "Package" (Paquete). Cree un paquete para su aplicación, por ejemplo, "com.labex.springmvc".
  5. Haga clic derecho en el paquete y seleccione "New" (Nuevo) > "Java Class" (Clase Java). Cree una nueva clase para su controlador Spring MVC, por ejemplo, "HelloController.java".
package com.labex.springmvc;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class HelloController {

    @GetMapping("/")
    public String hello(Model model) {
        model.addAttribute("message", "Hello from LabEx Spring MVC!");
        return "hello";
    }
}
  1. Cree una nueva carpeta llamada "templates" en el directorio "src/main/resources". Aquí es donde colocará sus plantillas de vista de Spring MVC.
  2. Dentro de la carpeta "templates", cree un nuevo archivo llamado "hello.html" y agregue el siguiente contenido:
<!doctype html>
<html xmlns:th="http://www.thymeleaf.org">
  <head>
    <title>Hello LabEx</title>
  </head>
  <body>
    <h1 th:text="${message}"></h1>
  </body>
</html>

Ahora ha configurado el entorno de desarrollo básico para su aplicación Spring MVC utilizando IntelliJ IDEA y Maven. Puede pasar al siguiente paso, que es construir la aplicación Spring MVC.

Construcción de una aplicación Spring MVC con Maven

Ahora que ha configurado su entorno de desarrollo, comencemos a construir una aplicación Spring MVC utilizando Maven.

Configuración del proyecto Maven

  1. Abra el archivo pom.xml en su proyecto de IntelliJ IDEA.
  2. Agregue las dependencias necesarias para Spring MVC y Thymeleaf (el motor de plantillas de vista) agregando el siguiente código dentro de la sección <dependencies>:
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <version>2.7.0</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
        <version>2.7.0</version>
    </dependency>
</dependencies>
  1. Agregue el complemento Maven de Spring Boot a la sección <plugins> del archivo pom.xml:
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <version>2.7.0</version>
        </plugin>
    </plugins>
</build>

Implementación del controlador Spring MVC

En el archivo HelloController.java, puede definir la lógica del controlador que manejará las solicitudes entrantes y devolverá la vista adecuada:

package com.labex.springmvc;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class HelloController {

    @GetMapping("/")
    public String hello(Model model) {
        model.addAttribute("message", "Hello from LabEx Spring MVC!");
        return "hello";
    }
}

Configuración de la aplicación Spring MVC

Para configurar la aplicación Spring MVC, necesitará crear un archivo SpringMvcApplication.java en el paquete raíz (por ejemplo, com.labex.springmvc) con el siguiente contenido:

package com.labex.springmvc;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class SpringMvcApplication {
    public static void main(String[] args) {
        SpringApplication.run(SpringMvcApplication.class, args);
    }
}

Ejecución de la aplicación Spring MVC

  1. En la terminal de IntelliJ IDEA, navegue hasta el directorio de su proyecto y ejecute el siguiente comando para compilar e iniciar la aplicación:
mvn spring-boot:run
  1. Una vez que la aplicación esté en ejecución, abra su navegador web y navegue a http://localhost:8080/. Debería ver el mensaje "Hello from LabEx Spring MVC!" mostrado en la página.

¡Felicidades! Ha creado con éxito una aplicación Spring MVC utilizando Maven en IntelliJ IDEA. Ahora puede continuar mejorando su aplicación agregando más funcionalidades, como controladores, servicios y vistas adicionales.

Resumen

En este tutorial, ha aprendido cómo construir una aplicación Spring MVC utilizando Maven en IntelliJ IDEA, así como cómo utilizar Docker para la contenerización. Siguiendo los pasos descritos, ahora debería poder configurar su entorno de desarrollo, crear un proyecto Spring MVC y empaquetar su aplicación como un contenedor Docker para la implementación. Este conocimiento será valioso mientras continúe explorando y construyendo aplicaciones web con Spring MVC y Docker.