1. 什么是事务注解@Transactional

事务注解@Transactional是Spring框架的一种注解,它可以将普通的Java方法或类标记为事务。它允许开发人员将事务属性(如隔离级别,只读标志,超时时间等)与所调用的方法或类相关联。当调用这些方法或类时,容器将自动检测这些属性,并在必要时启动事务。

2. 为什么需要在事务注解@Transactional中指定rollbackFor

在使用@Transactional注解时,可以指定rollbackFor属性,这个属性用于指定在发生哪些异常时,事务将被回滚。如果不指定rollbackFor属性,那么当发生运行时异常(RuntimeException)时,事务将被回滚;但是,如果发生非运行时异常(checked exception)时,事务将不会被回滚。因此,通过指定rollbackFor属性,可以指定哪些异常会导致事务回滚。

3. 实例分析

下面是一个使用@Transactional注解的例子:

在上面的例子中,我们通过指定rollbackFor属性,指定了当发生Exception和RuntimeException异常时,事务将被回滚。