Весна @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), будет использоваться "самая сильная" аннотация, и поэтому вызов транзакционного метода только для чтения будет несколько более эффективным.

Другие вопросы по тегам