当前位置: 首页 > 面试题库 >

每当我说@Transactional时,都会对每个检查的异常进行回滚

麹学文
2023-03-14
问题内容

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

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

那么有没有办法告诉spring它应该如何在 全球范围内 处理已检查的expeting ?


问题答案:

自定义快捷方式注释

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

不,这正是自定义注释的用例。这是《春季参考》中“
自定义快捷方式注释 ”的引文:

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

样例代码

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

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

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



 类似资料:
  • 问题内容: 由于程序员被迫捕获所有已检查的异常,因此在出现任何问题时都会抛出已检查的异常。我想回退任何这些期望。在每个注释上书写都非常容易出错,因此我想告诉spring:“每写一次,我的意思是。 我知道,我可以创建一个自定义批注,但这似乎是不自然的。 那么有没有办法告诉spring它应该如何在全球范围内处理检查的异常情况呢? 问题答案: 自定义快捷方式注释 我知道,我可以创建一个自定义批注,但这似

  • 给定在类上定义的以下注释。 Spring还会在抛出未检查()异常加上时回滚吗?或者给定上面的注释,它是否只回滚列出的异常,即在本例中?

  • 我有一个很好的方法。这就是它的样子。 我想把这个换成Lambda。但我不知道如何填写if(条件)在外面返回true或false。我知道我也可以在流中完成。有人能举个例子吗?

  • 我的模型逐渐变慢,速度不可接受(即从每秒200次滴答声到一次滴答声的几秒钟)。我想了解这个问题的原因。最简单的方法是什么来检查模型的哪个部分越来越耗费时间?我以前试过使用其他java探查器,但不好理解。

  • 问题内容: 所提供的答案都很棒,我在Alnitak的答案评论中提到,我需要查看CSV生成脚本,因为无论出于何种原因,它都不输出UTF-8。 正如正确指出的那样,它曾经输出UTF-8-Ye Olde Microsoft Excel存在问题,它没有按照我希望的方式进行编码。 我现有的CSV生成看起来像: 现在看起来像: -----------------------------------------

  • 问题内容: 每当我尝试将其插入仓库时,git都要求两者。 每次重新输入密码都没有问题,但是问题在于输入用户名。我用来克隆我的仓库。 因此,我该如何配置git,这样就不会在每一个上都要求它了。 我是Linux的新手,但Windows中的IIRC 仅要求输入密码。 问题答案: 编辑(由主持人和评论建议使用@ dk14) 警告:如果您从答案中使用密码,您的密码将完全未加密(“原样”)存储在。请查阅下面的