Spring GetMapping , PostMapping etc

Acabamos de ver como usar Java equals y hashcode

Spring GetMapping es una anotación de Spring Framework que aparece con Spring 4.3 y nos permite simplificar el manejo de los diferentes métodos de Spring MVC y los @RequestMappings que a veces se hacen un poco pesados.

A partir de ahora nosotros podemos usar estas anotaciones y simplificar el código. Para ello vamos a construir un ejemplo utilizando Spring Boot y con las dependencias de MVC y Thymeleaf.


<?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" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 <modelVersion>4.0.0</modelVersion>

 <groupId>com.arquitecturajava</groupId>
 <artifactId>spring</artifactId>
 <version>0.0.1-SNAPSHOT</version>
 <packaging>jar</packaging>

 <name>spring</name>
 <description>Demo project for Spring Boot</description>

 <parent>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-parent</artifactId>
  <version>1.5.8.RELEASE</version>
  <relativePath/> <!-- lookup parent from repository -->
 </parent>

 <properties>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
  <java.version>1.8</java.version>
 </properties>

 <dependencies>
  <dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-web</artifactId>
  </dependency>

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
</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>

El primer paso es ver el código de la aplicación principal:

package com.arquitecturajava.spring;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

@SpringBootApplication
public class Application extends WebMvcConfigurerAdapter {

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

Una vez tenemos esto construido el siguiente paso es dar de alta un controlador:

package com.arquitecturajava.spring;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class HolaController {

 @GetMapping("/hola")
 @ResponseBody
 public String hola() {

  return "has hecho una peticion get";

 }

 @GetMapping("/formulario")
 public String hola2() {

  return "formulario";

 }

 @PostMapping("/holapost")
 @ResponseBody
 public String holaPost() {

  return "has hecho una peticion post";

 }
}

Este controlador hace uso de las nuevas anotaciones de spring @GetMapping ,@PostMapping etc. Como se puede ver si solicitamos la url “/hola” nos devolverá “has hecho una peticion get” . Vamos a arrancar la aplicación de SpringBoot y probarlo.

Funciona perfectamente . Una vez que hemos realizado la primera petición solicitamos la carga del formulario con “/formulario”.


<html>
<body>

<form action="holapost" method="post">
<input type="submit"/>
</form>

</body>
</html>

Esto nos cargará una página html  con un botón que realiza una petición post a la url “holapost”.

Pulsamos el botón y nos mostrará el resultado

Acabamos de usar spring GetMapping y PostMapping para trabajar con Spring MVC y eliminar el uso de @RequestMapping.

Otros artículos relacionados

  1. Spring MVC Flash Attributes
  2. Utilizando Spring MVC Bean Validation
  3. Spring MVC Configuración (I)
  4. Spring MVC