Spring 用什么注解开启事务?

在Spring中,我们使用@Transactional注解来开启事务管理。@Transactional可以应用在类级别和方法级别。当在类级别使用时,这个注解会应用到该类的所有公共方法上;当在方法级别使用时,它只会应用到具体的那个方法上。

以下是一个简单的例子,展示了如何在Spring中使用@Transactional注解:

@Service
public class BookService {

    @Autowired
    private BookRepository bookRepository;

    @Transactional
    public void addBook(Book book) {
        bookRepository.save(book);
    }
}

在上面的例子中,addBook方法被@Transactional注解标记,因此当执行addBook方法时,Spring会自动启动一个新的事务。如果在执行过程中没有发生异常,那么这个事务会在addBook方法执行完毕后自动提交;如果在执行过程中发生了异常,那么这个事务会被自动回滚,所做的所有更改都会被撤销。

需要注意的是,@Transactional注解只能应用在public方法上,如果应用在protected、private或default方法上,它不会报错,但是也不会有任何效果。

发表评论

后才能评论