Spring 为什么春季需要HIbernateTransactionManager?

Spring 为什么春季需要HIbernateTransactionManager?,spring,hibernate,spring-mvc,transactionmanager,Spring,Hibernate,Spring Mvc,Transactionmanager,当我们可以通过会话在hibernate中进行事务处理时,在Spring hibernate集成中再次需要HibernateTransactionManager 它的作用是什么 没有这个,我们为什么不能直接进行交易 多亏了AOP,Spring允许使用声明性事务,就像使用EJB一样 而不是做 public void doSomething() { Session sess = factory.openSession(); Transaction tx = null; try

当我们可以通过会话在hibernate中进行事务处理时,在
Spring hibernate
集成中再次需要
HibernateTransactionManager

它的作用是什么


没有这个,我们为什么不能直接进行交易

多亏了AOP,Spring允许使用声明性事务,就像使用EJB一样

而不是做

public void doSomething() {
    Session sess = factory.openSession();
    Transaction tx = null;
    try {
        tx = sess.beginTransaction();

        // do some work
        ...

        tx.commit();
    }
    catch (RuntimeException e) {
        if (tx != null) tx.rollback();
        throw e; // or display error message
    }
    finally {
        sess.close();
    }
}
你就是这么做的

@Transactional
public void doSomething() {
    // do some work
}
因为Spring为您处理事务逻辑,所以它更可读、更易维护、更简单、更安全。这就是为什么需要事务管理器:告诉Spring它应该如何为您处理事务。因为它也可以使用相同的声明性模型,但使用JPA事务或JTA事务

这在的。

副本中有详细描述