Spring的@Transactional注解可以用來聲明事務的行為。它可以用在類級別或方法級別上。
在類級別上使用@Transactional注解,表示該類的所有公共方法都將被加入到一個事務中。示例代碼如下:
@Transactional
public class MyClass {
// methods
}
在方法級別上使用@Transactional注解,表示該方法將被加入到一個事務中。示例代碼如下:
public class MyClass {
@Transactional
public void myMethod() {
// method body
}
}
@Transactional注解還可以接受一些參數,用于配置事務的屬性,如事務的隔離級別、傳播行為、超時時間等。常用的參數如下:
示例代碼如下:
@Transactional(isolation = Isolation.READ_COMMITTED, propagation = Propagation.REQUIRED, readOnly = false, timeout = 60, rollbackFor = Exception.class)
public void myMethod() {
// method body
}
注意:使用@Transactional注解需要在Spring的配置文件中開啟事務管理器,通過@EnableTransactionManagement注解或者配置tx:annotation-driven來實現。