Spring e Transaction Management

Boa noite pessoal,

Estou com um problema no gerenciamento de transações pelo Spring.

Suponha o seguinte código:

public class MyService {

   @Transactional
   public void methodA() {
      ...
      for( Object o : objects ) {
         try {
            methodB(); // chamada pelo this, não passa pelo proxy do Spring, não gera transaction
         } catch( Exception ex ) {
            logException( ex );
         }
      }
      ...
   }

   @Transactional
   public void methodB( Object o ) throws Exception {
      ...
   }

}

Minha necessidade é que o método B rode em uma transação separada da transação do método A, de forma que uma exception no método B gere um rollback apenas nas operações do método B e que esta exception seja logada.

O seguinte código invoca o método A (via proxy), porém a chamada interna ao método B não passa pelo proxy, consequentemente não criando uma nova transação para o método B.

   MyService srv = (MyService) ApplicationContext.getBean("myService");
   srv.methodA();

Já tentei configurações usando SpringAOP e também TransactionProxyFactoryBean e nada. Gostaria de resolver esse problema de forma a gerar menor impacto no código da classe MyService, tornando-a o mais independente possível de um framework. Quais as sugestões?

Agradeço pela atenção!