Comment implémenter des opérations par lots avec MyBatis / Spring?

Je me demande comment mettre en œuvre des opérations de traitement par lots avec mes états d'insertion à l'aide de MyBatis 3 & le Printemps 3?

Par exemple, voici ce qui se fait actuellement:

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);
    }
  }
}

Avertissement: C'est juste le pseudo-code pour les besoins de la démonstration

Alors, que puis-je faire pour le transformer en un processus de traitement par lots?

Idéalement, je veux être en mesure de le faire avec moins "intrusion" dans le code, c'est à dire utiliser des annotations plus préféré, mais si pas possible, quelle est la prochaine meilleure chose?

Aussi, ce doit être configuré pour un service, pas pour tout le projet.

source d'informationauteur Trant