Spring整合Hibernate加事务的处理
要在Spring中使用事务,先要在beans.xml中,把命名空间的名字和Location定义好,然后加一句话<tx:annotation-driven transaction-manager="txManager" />,接下来就是通过SessionFactory来获得txManager(最好查API),然后就可以通过AOP来处理事务(增强等)
?
beans.xml文件的配置?
?
此事务处理的是在Service层,add*的所有方法,看下面一段代码:package com.lbx.service;import com.lbx.dao.LogDAO;import com.lbx.dao.UserDAO;import com.lbx.model.Log;import com.lbx.model.User;public class UserService {private UserDAO userDAO; private LogDAO logDAO;public void add(User user) {userDAO.save(user);Log log = new Log();log.setMsg("a user saved!!!!!");logDAO.save(log);}public UserDAO getUserDAO() {return userDAO;}public void setUserDAO( UserDAO userDAO) {this.userDAO = userDAO;}public LogDAO getLogDAO() {return logDAO;}public void setLogDAO(LogDAO logDAO) {this.logDAO = logDAO;}}?
?
中有一个add(User user)的方法,但是此方法在增加User的情况下还要增加一个Log,而且要同步,然而此程序的事务又加在此方法上,一旦User的增加或者Log的增加出现了异常什么的,就都会回滚,这样就保证了事务的正常。?