gpt4 book ai didi

java - 每当我说@Transactional 时,回滚每个检查的异常

转载 作者:IT老高 更新时间:2023-10-28 13:43:32 25 4
gpt4 key购买 nike

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

我知道,我可以创建自定义注释,但这似乎不自然。

那么有没有办法告诉 spring 它应该如何全局地处理检查的异常

最佳答案

自定义快捷方式注释

I know, that I could create a custom annotation, but that seems unnatural.

不,这正是自定义注释的用例。这是来自 Custom Shortcut Annotations 的引述在 Spring 引用中:

If you find you are repeatedly using the same attributes with @Transactional on many different methods, then Spring's meta-annotation support allows you to define custom shortcut annotations for your specific use cases.

示例代码

以下是您的用例的示例注释:

@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Transactional(rollbackFor=Exception.class)
public @interface MyAnnotation {
}

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

关于java - 每当我说@Transactional 时,回滚每个检查的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3701376/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com