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

Spring @Transactional属性可以在私有方法上工作吗?

燕智
2023-03-14
问题内容:

如果我在Spring bean的私有方法上有一个@Transactional -annotation,该注释有什么作用吗?

如果@Transactional注释位于公共方法上,则它将起作用并打开一个事务

public class Bean {
  public void doStuff() {
     doPrivateStuff();
  }
  @Transactional
  private void doPrivateStuff() {

  }
}

...

Bean bean = (Bean)appContext.getBean("bean");
bean.doStuff();

问题答案:
本文向大家介绍Spring @Transactional属性可以在私有方法上工作吗?相关面试题,主要包含被问及Spring @Transactional属性可以在私有方法上工作吗?时的应答技巧和注意事项,需要的朋友参考一下

你的问题的答案是否定的- @Transactional如果用于注释私有方法,则将无效。代理生成器将忽略它们。

在Spring手册10.5.6章中有记录:

方法可见性和 @Transactional

使用代理时,应仅将@Transactional注释应用于具有公共可见性的方法。如果使用注释对受保护的,私有的或程序包可见的方法进行 @Transactional注释,则不会引发任何错误,但是带注释的方法不会显示已配置的事务设置。如果需要注释非公共方法,请考虑使用AspectJ(请参见下文)。



 类似资料:
  • 问题内容: 如果我在Spring bean的私有方法上有一个@Transactional -annotation,该注释有什么作用吗? 如果注释位于公共方法上,则它将起作用并打开一个事务。 问题答案: 问题不是私有的还是公共的,问题是:如何调用它以及你使用哪种AOP实现! 如果你使用(默认)Spring Proxy AOP,则仅当调用通过代理时,才会考虑Spring提供的所有AOP功能(如)。-如

  • 在 Python 的面向对象编程中,私有属性是只能在类的实例方法中访问的属性,不允许在外界访问私有属性。 1. 私有属性的定义 1.1 定义 在属性名称前加上前缀 __,表示该属性为私有属性,示例代码如下: class Object: def method(self): self.__private_attribute = 123 在第 3 行,创建一个私有属性 __pr

  • 我有几个用注释的公共方法,IntelliJ显示了警告,它们可以是包私有的,也可以是私有的。 既然用注释的方法应该是公共的,我如何才能在IntelliJ中仅对这些方法禁用此检查/警告?

  • 我之前有一个关于这个问题的帖子已经解决了。然而,自从用自动连线bean和较少的XML配置重建项目后,我发现我正在重新考虑这个问题。我遵循了我以前的项目实现这一点的方式,但它不起作用。有人能帮助我为什么或者我应该改变什么来使它工作吗? 注册服务: 注册DAO:

  • 问题内容: 我试图通过反射获取静态私有属性的值,但失败并显示错误。 我得到的异常是: 而且,我需要使用以下代码来调用一个私有的。 但是问题是Student类是单例类,并且构造函数是私有的,并且无法访问。 问题答案: 您可以将字段设置为可访问:

  • 问题内容: 我正在尝试使用带注释的TX Spring支持。 应用程序上下文XML: 实际代码: 调用代码: 它给出了 FALSE。 我究竟做错了什么? 问题答案: 您应该在配置中添加它 在您的RepositoryClass上添加一个接口 这在你的测试课中 请参阅本教程。