Ir al contenido principal

Destacado

Introducción a Axon Framework - Parte 1

Investigando sobre arquitecturas CQRS encontre el Axon Framework.  Te comparto mis apuntes en mi camino a aprender este framework.


¿Que es CQRS?
CQRS es una forma de crear sistemas de software que hace hincapié en separar la parte  que cambia el estado de la aplicación y la parte que consulta el estado de la aplicación. 

¿Que es el Framework Axon? Es un framework para implementar CQRS en Java. Se describe asi mismo como un framework que te permite construir aplicaciones escalables, extensibles y mantenibles; permitiendo a los desarrolladores aplicar el patrón arquitectónico Command Query Responsibility Segregation (CQRS). El cual nos da ciertos bloques importantes con sus implementaciones respectivas para crear estos sistemas como: agregados, repositorios y bus de eventos (el mecanismo de envío para eventos).  Estos últimos términos provienen del Domain Driven Design (DDD). 
En palabras simples: CQRS es escribir y leer en forma separada. 
En búsqueda de tener bajo acoplamiento, el tr…

Lo nuevo en Spring 3.1 - parte 1



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.

http://pastie.org/2958174

En este ejemplo se ha hecho una configuracion mas avanzada.

Se elimina:



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

Comentarios