Весна @transactional preformance
Допустим, у меня есть служебный компонент, который имеет 2 метода:
@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()?
Спасибо
1 ответ
Другими словами, вы хотели бы знать, есть ли аннотация @Transactional
имеет смысл, когда метод, аннотированный этой аннотацией, вызывается из одного и того же компонента.
Я считаю, что это зависит от того, как настроены ваши аспекты. Если они используют прокси, метод, вызываемый из одного и того же компонента, будет вызываться напрямую, и поэтому аннотация ничего не сделает. Однако, если вы используете модификацию байтового кода (например, AspectJ), будет использоваться "самая сильная" аннотация, и поэтому вызов транзакционного метода только для чтения будет несколько более эффективным.