4-febrero-2012
admin

Transacciones con Spring AOP (Forma declarativa con un fichero xml)

El tratamiendo de las transacciones mediante Spring AOP puede realizarse de varias formas. O bien, de forma programática o bien de forma declarativa (ya sea con anotaciones o con fichero xml):


1/ Si se hace de forma programática, las transacciones, deben controlarse en las distintas clases. Esto puede llegar a resultar bastante engorroso en aplicaciones relativamente grandes.


2/ Si se hace de forma declarativa con anotaciones estaríamos en la misma situación ya que las transacciones se definen dentro de las propias clases como antes, eso sí, de una forma más limpia.


3/ Si se hace de forma declarativa con un fichero xml se puede poner un punto de corte (pointcut) sobre la capa manager que abarque a todas las clases pertenecientes a ella. Y mediante un se pueden definir los tipos de propiedades de las transacciones (propagation, isolation leven, timeout, etc.), que deben ejecutar los métodos de esas clases manager. Para ello basta con seguir algún patrón a la hora de nombrar los nombres métodos y así poder diferenciarlos unos de otros. De esta forma en unas pocas líneas de un fichero xml se tienen tratadas todas las transacciones de la aplicación.




Para usar esta tercera forma nos pide aparte un par de librerías de Aspectj. Obtenidas p.e. de maven, de la siguiente forma:

      
          org.aspectj
          aspectjrt
          1.5.4
      
      
          org.aspectj
          aspectjweaver
          1.5.4
      





Un ejemplo sencillo de uso, con hibernate:

    
    
	
    

    
    
        
     
    
    
    
        
            
            
            
        
    





Nota: Aquí hay bastante más información para consultar http://static.springsource.org/spring/docs/2.5.x/reference/aop.html

1 Comentario

  • I аm nοt surе where you агe getting your info, but greаt topic.
    I needѕ to sρend some time leаrning
    much moгe oг understanding moге.
    Thаnks for excellent info I was looking foг this info for my mіssion.

Dejar un comentario

Categorias

Linkedin