反例
@Transactional
private void writeToDB(BusinessDTO dto) {
// ...
}
正例
@Transactional
public void writeToDB(BusinessDTO dto) {
// ...
}
解读
1.普及下:当一个方法或类被标记为 @Transactional,这意味着这个方法或类中的所有方法执行时,将包裹在一个数据库事务中。这样,如果方法执行过程中出现任何异常,所有在这个事务中的数据库操作都会被自动回滚(撤销),以保证数据库的一致性和完整性
2.问题点:Transactional类不应当注解在非public方法上,否则该注解将无效,这是由于Spring的切片注解方式决定的