Se nos viene Spring 3.1 y voy a citar los cambios que se vienen:
1.- La infraestructura MVC basada en namespaces ahora pasa a MVC Java Config
Ejemplo 1:
// Equivalent to
@EnableWebMvc
@Configuration
public class WebConfig {
// Aqui es donde hariamos nuestra configuracion
}
Ejemplo 2: Veamos un ejemplo de Web Config mas completo.
En este ejemplo se ha hecho una configuracion mas avanzada.
Se elimina:
- Remove @EnableWebMvc
- Extend WebMvcConfigurationSupport
2.- Si quiero declarar otros beans o importar algun archivo xml de beans (seguridad por ejemplo)
Java Config al maximo:
@ComponentScan(basePackages = "org.springframework.samples.mvc31")
3.- Luego la infraestructura MVC
Si bien @MVC fue introducido con Spring 2.5, soporte para REST en la version 3.0. Hay mas que eso, la infraestructura, compuesta por:
- DefaultAnnotaionHandlerMapping
- AnnotationMethodHandlerAdapter
- AnnotationMethodHandlerExceptionResolver
Lo bueno fue que reemplazo toda esa jerarquia de clases que habia en las versiones pasadas.
La nueva infraestructura ahora es:
- RequestMappingHandlerMapping
- RequestMappingHandlerAdapter
- ExceptionHandlerExceptionResolver
Lo cual fue nombrado despues como:
- @RequestMapping HandlerMapping
- @RequestMapping HandlerAdapter
- @ExceptionHandler ExceptionResolver
Veamos este diagrama para ver como funciona todo:
Ahora tenemos nuevas abstracciones:
- HandlerMethod
- HandlerMethodArgumentResolver
- HandlerMethodReturnValueHandler
Que es posible ahora?
- Custom request conditions
- Build request mappings from any source
- Inspect controller method in interceptors
- Customize any argument or return value
- Design own method signature
De esto veremos en el siguiente post.
Joe
0 comentarios:
Publicar un comentario