2013-05-20 163 views
0

可以说,我有一个具有2种方法服务豆:春天@Transactional性能与

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

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

和2个第3方法的变化:

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

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

将瓶坯什么叫更有效? doSomethingNice1()? doSomethingNice2()?

感谢

+0

doSomethingNice1()的'(readonly = false)'覆盖'doSomethingReadOnly()'的'(readonly = true)',如果这就是你要求的。 –

回答

0

通过换句话说,你想知道注释@Transactional是否有意义时,这个注解方法是从同一个bean中调用。

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