¿Algún buen hilo de resorte con ejemplos de TaskExecutor?

Estoy intentando conocer cómo implementar el subprocesamiento en una aplicación Java que usa Spring para la gestión de transacciones. Encontré la sección TaskExecutor en la documentación de Spring , y ThreadPoolTaskExecutor parece que se ajusta a mis necesidades;

ThreadPoolTaskExecutor

Esta implementación solo se puede usar en un entorno Java 5 pero también es la más utilizada en ese entorno. Expone propiedades de beans para configurar un java.util.concurrent.ThreadPoolExecutor y lo envuelve en un TaskExecutor. Si necesita algo avanzado, como un ScheduledThreadPoolExecutor, se recomienda utilizar un ConcurrentTaskExecutor.

Sin embargo, no tengo idea de cómo usarlo. He estado buscando buenos ejemplos por un tiempo sin suerte. Si alguien puede ayudarme, lo agradecería.

Es bastante simple. La idea es que tienes un objeto ejecutor que es un bean, que se pasa al objeto que quiera disparar la nueva tarea (en un nuevo hilo). Lo bueno es que puedes modificar qué tipo de ejecutor de tareas usar simplemente cambiando las configuraciones de Spring. En el siguiente ejemplo, tomo una clase de ejemplo (ClassWithMethodToFire) y la envuelvo en un objeto Runnable para activar el fuego; también podría implementar Runnable en una clase propia, y luego en el método de ejecución simplemente llamaría a classWithMethodToFire.run() .

Aquí hay un ejemplo muy simple.

 public class SomethingThatShouldHappenInAThread { private TaskExecutor taskExecutor; private ClassWithMethodToFire classWithMethodToFire; public SomethingThatShouldHappenInAThread(TaskExecutor taskExecutor, ClassWithMethodToFire classWithMethodToFire) { this.taskExecutor = taskExecutor; this.classWithMethodToFire = classWithMethodToFire; } public void fire(final SomeParameterClass parameter) { taskExecutor.execute( new Runnable() { public void run() { classWithMethodToFire.doSomething( parameter ); } }); } } 

Y aquí están los frijoles de spring:

          
    Intereting Posts