2013-10-10 4 views
0

은 현재 내가 봄 (3)을 개발, MyBatis로와 Struts2는 MVC architecture.But 내가 내 서비스 계층에서 내 application.I 사용 봄 트랜잭션에서 트랜잭션을 처리하는 어려움에 직면하여 응용 프로그램을 통합이Spring 3 Mybatis 통합 애플리케이션에서 트랜잭션을 처리하는 데 가장 적합한 계층은 무엇입니까?

서비스 계층을 좋아

  @Service("MyService") 
     @Transactional 
     public class MyServiceImpl implements IMyService { 
       @Transactional(readOnly=false) 
       public void myMethod() { 

       } 
     } 

제 질문은 "스프링 트랜잭션을 서비스 계층 대신 데이터 액세스 계층에서 사용해야합니까?" 당신이 서비스 계층 트랜잭션을보다 서비스 계층을 통해 각 DAO 메소드를 호출하는 경우,이

데이터 액세스 레이어

 @Repository("MyDAO") 
     public class MyDAO implements IMyDAO { 
      @Transactional(readOnly=false) 
      public void myMethod() { 

      } 
     } 

답변

2

을 좋아한다. DAO 메소드가 트랜잭션 일 필요가있는 것보다 서비스 레이어와 독립적 인 DAO 메소드를 호출하는 경우. Spring이 두 레이어의 트랜잭션을 전파 할 것이기 때문에 두 트랜잭션을 모두 만들 수도 있습니다. 즉, 트랜잭션 DAO 메소드를 호출하는 트랜잭션 인 Service 메소드를 호출하면 동일한 트랜잭션을 공유하게됩니다.