¿Cómo implementar operaciones por lotes con MyBatis / Spring?

Me pregunto cómo implementar operaciones por lotes con mis declaraciones de inserción utilizando MyBatis 3 y Spring 3.

Por ejemplo, esto es lo que se está haciendo actualmente:

spring.xml:

<bean id="jndiTemplateDatasource" class="org.springframework.jndi.JndiTemplate">
    <property name="environment">
      <props>
        <prop key="java.naming.factory.initial">${context.factory}</prop>
      </props>
    </property>
</bean>
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
  <property name="jndiTemplate" ref="jndiTemplateDatasource"/>
  <property name="jndiName" value="${connectionpool.jndi}"/>
</bean>
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
  <property name="dataSource" ref="dataSource"/>
</bean>

<tx:annotation-driven transaction-manager="transactionManager"/>

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
  <property name="dataSource" ref="dataSource" />
  <property name="configLocation" value="classpath:mybatis-config.xml"/>
</bean>
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
  <property name="basePackage" value="com.test" />
</bean>

MyService.xml:

<insert id="insertMyRecord" parameterType="com.test.MyRecord"  >
   insert into ... // code removed
</insert> 

MyService.java:

public interface MyService {

  public void insertMyRecord (MyRecord);
}

MyController.java:

@Controller
public class MyController {

  @Autowired
  private MyService myService;

  @Transactional
  @RequestMapping( .... )
  public void bulkUpload (@RequestBody List<MyRecord> myRecords) {
    for (MyRecord record : myRecords) {
      myService.insertMyRecord(record);
    }
  }
}

Descargo de responsabilidad: Eso es sólo un pseudo código para fines de demostración

Entonces, ¿qué puedo hacer para convertir eso en un proceso por lotes?

Idealmente, quiero poder hacerlo con la menor "intrusión" en el código, es decir, usar anotaciones más preferidas, pero si no es posible, ¿cuál es la mejor opción?

Además, esto debe configurarse solo para este servicio, no para todo en el proyecto.

Respuestas a la pregunta(3)

Su respuesta a la pregunta