transactional javax和spring @Transactional
时间: 2023-10-27 19:54:25 浏览: 204
spring-@Transactional-jar
`javax.transaction.Transactional` 和 `org.springframework.transaction.annotation.Transactional` 都是用于管理事务的注解,但是它们来自不同的包,具有不同的特点。
`javax.transaction.Transactional` 是 Java EE 标准中定义的注解,可以在 EJB、Servlet 或 CDI 等容器管理的组件中使用。它只支持基于 JTA(Java Transaction API)的事务管理,需要应用服务器的支持,并且不能在普通的 Java SE 应用程序中使用。
`org.springframework.transaction.annotation.Transactional` 是 Spring 框架提供的注解,可以在任何 Spring 管理的 bean 中使用。它支持基于 Spring 的事务管理,可以与 JTA、JDBC 或 Hibernate 等持久化框架一起使用,因此可以在 Java SE 应用程序中使用。此外,它还提供了更多的属性来配置事务的细节,比如事务隔离级别、传播行为等。
所以,如果你的应用程序是基于 Java EE 平台的,建议使用 `javax.transaction.Transactional` 注解来管理事务;如果你的应用程序是基于 Spring 框架的,建议使用 `org.springframework.transaction.annotation.Transactional` 注解来管理事务。
阅读全文