Acabamos de ver como usar Java equals y hashcode
Spring MVC configuration annotation es una de las posibilidades que tenemos en las versiones 3.x y 4.x de Spring Framework a la hora de configurar el framework Spring utilizando unicamente anotaciones y prescindiendo del uso de ficheros XML. Esto permite chequear gran parte de la configuración en tiempo de compilación y evitará muchos problemas.
Spring MVC configuration annotation
Vamos a crear un ejemplo de hola mundo que configure el framework unicamente con anotaciones . Para ello el primer paso es definir un fichero pom.xml con las dependencias del framework que vayamos a utilizar:
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>4.2.4.RELEASE</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency>
En este caso hemos usado Spring 4 , una vez tenemos las dependencias el siguiente paso es crear una clase de Spring de configuración:
package com.arquitecturajava;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import org.springframework.web.servlet.view.InternalResourceViewResolver;
@Configuration
@EnableWebMvc
@ComponentScan(basePackages = { "com.arquitecturajava" })
public class SpringConfiguracion extends WebMvcConfigurerAdapter{
@Bean
public InternalResourceViewResolver getInternalResourceViewResolver() {
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("/WEB-INF/jsp/");
resolver.setSuffix(".jsp");
return resolver;
}
}
En esta clase se han definido los packages a escanear a través de la anotación @ComponentScan. Se ha activado las capacidades de Spring MVC utilizando @EnableSpringMVC y finalmente se ha añadido un último bean que referencia al ViewResolver. Vamos a construir un Controlador que mapee la url de /hola y una página jsp dentro de la carpeta /WEB-INF/jsp que nos muestre un mensaje de “hola”.
package com.arquitecturajava;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class ControladorHola {
@RequestMapping("/hola")
public String hola() {
return "hola";
}
}
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> hola </body> </html>
Hemos configurado Spring MVC a través del uso de anotaciones , aun así nos queda dar de alta un Servlet que registre Spring MVC como framework en nuestra WebApp.
<web-app xmlns="http://java.sun.com/xml/ns/javaee" version="3.1"> <servlet> <servlet-name>SpringController</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet </servlet-class> <init-param> <param-name>contextClass</param-name> <param-value> org.springframework.web.context.support.AnnotationConfigWebApplicationContext </param-value> </init-param> <init-param> <param-name>contextConfigLocation</param-name> <param-value> com.arquitecturajava.SpringConfiguracion </param-value> </init-param> </servlet> <servlet-mapping> <servlet-name> SpringController </servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
En este caso hemos usado una clase de contexto que se apoya en anotaciones. Invocamos la URL de /hola y la aplicación funcionará sin problemas.
Nos hemos apoyado en Spring MVC configuration annotation para eliminar los ficheros de configuración de Spring Framework. Es posible incluso eliminar el fichero web.xml para ello nos apoyaríamos en un WebApplicationInitializer
Otros artículos relacionados: