在Spring3Mybatis集成应用程序中,哪一层最适合处理事务?
目前我使用MVC架构开发Spring3、Mybatis和Struts2集成应用程序。但是我在应用程序中处理事务时遇到一些困难。我在服务层使用Spring事务,如下所示 服务层在Spring3Mybatis集成应用程序中,哪一层最适合处理事务?,spring,spring-3,spring-transactions,Spring,Spring 3,Spring Transactions,目前我使用MVC架构开发Spring3、Mybatis和Struts2集成应用程序。但是我在应用程序中处理事务时遇到一些困难。我在服务层使用Spring事务,如下所示 服务层 @Service("MyService") @Transactional public class MyServiceImpl implements IMyService { @Transactional(readOnly=false)
@Service("MyService")
@Transactional
public class MyServiceImpl implements IMyService {
@Transactional(readOnly=false)
public void myMethod() {
}
}
我的问题是“我应该在数据访问层而不是服务层中使用Spring事务吗?”
数据访问层
@Repository("MyDAO")
public class MyDAO implements IMyDAO {
@Transactional(readOnly=false)
public void myMethod() {
}
}
如果您通过服务层调用每个DAO方法,则会使服务层具有事务性。如果调用一些独立于服务层的DAO方法,则DAO方法需要是事务性的。您还可以将这两个事务都设置为事务性的,因为Spring将在这两个层中传播事务,这意味着如果您调用的服务方法是事务性的,即调用事务性DAO方法,那么它们将共享相同的事务