2013-05-20 164 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),則將使用「最強」註釋,因此調用只讀事務處理方法將使稍微更有效一些