首先事务不是根据是不是service层而关闭的,而是你开启的session什么时候用完在哪个层用完就关闭。而一般情况下都是在事务配置文件里的前缀方法名如:这种在service层调用saveXXX方法时候这个方法就被事务管理,这个save方法里再调用dao层查询了你要的数据时候开启了session开启了事务。当你执行完了这个save方法事务自动关闭,session也自动关闭,都是由spring管理的