【问题标题】:spring @transactional preformance春天@事务性能
【发布时间】:2013-05-20 20:32:55
【问题描述】:

假设我有一个具有 2 种方法的服务 bean:

@Transactional(readonly=false)
public void doSomething() 

@Transactional(readonly=true)
public void doSomethingReadOnly()

以及第三种方法的 2 种变体:

@Transactional(readonly=false)
public void doSomethingNice1(){
    doSomethingReadOnly();
}

@Transactional(readonly=false)
public void doSomethingNice2(){
    doSomething();
}

什么调用会更有效地执行? doSomethingNice1()? doSomethingNice2()?

谢谢

【问题讨论】:

  • doSomethingNice1()(readonly=false) 会覆盖 doSomethingReadOnly()(readonly=true)(如果这是您要问的)。

标签: java performance spring transactional


【解决方案1】:

换句话说,当从同一个 bean 中调用使用此注解注解的方法时,您想知道注解 @Transactional 是否有意义。

我相信这取决于您的方面是如何配置的。如果他们使用代理,从同一个 bean 中调用的方法将被直接调用,因此注解不会做任何事情。但是,如果您正在使用字节码修改(例如 AspectJ),则将使用“最强”注释,因此调用只读事务方法将稍微更有效率。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-27
    • 2023-03-16
    • 1970-01-01
    • 2011-09-23
    • 2012-04-21
    • 2014-08-10
    • 2023-03-16
    • 1970-01-01
    相关资源
    最近更新 更多