每当我说@Transactional时,对每个选中的异常回滚

由于程序员被迫捕获所有已检查的异常,因此在出现任何问题时都会抛出已检查的异常。我想回退任何这些期望。rollbackFor=Exception.class在每个@Transactional注释上书写都非常容易出错,因此我想告诉spring:“每写一次@Transactional,我的意思是@Transactional(rollbackFor=Exception.class)”

我知道,我可以创建一个自定义批注,但这似乎是不自然的。

那么有没有办法告诉spring它应该如何在全球范围内处理检查的异常情况呢?

回答:

自定义快捷方式注释

我知道,我可以创建一个自定义批注,但这似乎是不自然的。

如果发现你在许多不同方法上重复使用@Transactional使用相同的属性,那么Spring的元注释支持使你可以为特定用例定义自定义快捷方式注释。

样例代码

这是你的用例的示例注释:

@Target({ElementType.METHOD, ElementType.TYPE})

@Retention(RetentionPolicy.RUNTIME)

@Transactional(rollbackFor=Exception.class)

public @interface MyAnnotation {

}

现在用@MyAnnotation(你会想到一个更好的名称)注释你的服务和/或方法。这是经过良好测试的功能,默认情况下有效。为什么要重新发明轮子?

以上是 每当我说@Transactional时,对每个选中的异常回滚 的全部内容, 来源链接: utcz.com/qa/418767.html

回到顶部