SpringBoot: Spring Web
Aprende a utilizar el módulo Spring Web en Spring Boot 3 para desarrollar aplicaciones web robustas y escalables siguiendo las mejores prácticas actuales.
Aprende SpringBoot GRATIS y certifícateSpring Boot 3 y su módulo Spring Web son herramientas esenciales para el desarrollo de aplicaciones web en Java. En este artículo, exploraremos cómo configurar y utilizar Spring Web en un proyecto de Spring Boot 3.
Configuración inicial
Para empezar, crea un nuevo proyecto Spring Boot 3. Puedes utilizar Spring Initializr para generar el proyecto base. Asegúrate de incluir el módulo Spring Web en las dependencias.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
Controladores en Spring Web
Los controladores son fundamentales en cualquier aplicación web. En Spring Web, los controladores se definen utilizando la anotación @RestController
. Aquí tienes un ejemplo básico:
package com.example.demo.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/api")
public class DemoController {
@GetMapping("/hello")
public String sayHello() {
return "Hola, mundo!";
}
}
Este controlador define un endpoint /api/hello
que devuelve un mensaje de saludo.
Manejo de peticiones y respuestas
Spring Web facilita el manejo de peticiones HTTP y la construcción de respuestas. Las anotaciones como @GetMapping
, @PostMapping
, @PutMapping
y @DeleteMapping
se utilizan para mapear métodos de controlador a diferentes tipos de peticiones HTTP.
@PostMapping("/create")
public ResponseEntity<String> createResource(@RequestBody MyResource resource) {
// lógica para crear el recurso
return ResponseEntity.status(HttpStatus.CREATED).body("Recurso creado");
}
Validación de datos
La validación de datos es crucial en cualquier aplicación. Spring Web soporta la validación utilizando anotaciones de Bean Validation. Añade las dependencias necesarias en tu pom.xml
:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
Y en tu controlador:
@PostMapping("/validate")
public ResponseEntity<String> validateResource(@Valid @RequestBody MyResource resource, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResponseEntity.badRequest().body("Datos inválidos");
}
return ResponseEntity.ok("Datos válidos");
}
Manejo de excepciones
El manejo de excepciones en Spring Web se puede realizar mediante la anotación @ExceptionHandler
. Esto permite definir métodos específicos para manejar diferentes tipos de excepciones.
@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(ResourceNotFoundException.class)
public ResponseEntity<String> handleResourceNotFound(ResourceNotFoundException ex) {
return ResponseEntity.status(HttpStatus.NOT_FOUND).body(ex.getMessage());
}
}
Configuración de CORS
La configuración de CORS (Cross-Origin Resource Sharing) es esencial para controlar el acceso a tus recursos desde diferentes dominios. Puedes configurarlo globalmente en Spring Boot 3:
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("http://example.com")
.allowedMethods("GET", "POST", "PUT", "DELETE")
.allowedHeaders("*")
.allowCredentials(true);
}
}
Lecciones de este módulo de SpringBoot
Lecciones de programación del módulo Spring Web del curso de SpringBoot.
Ejercicios de programación en este módulo de SpringBoot
Evalúa tus conocimientos en Spring Web con ejercicios de programación Spring Web de tipo Test, Puzzle, Código y Proyecto con VSCode.