Spring incluye la anotación @async desde hace varias versiones. Con Spring Boot su uso es prácticamente inmediato:
1. En la clase que representa mi aplicación Spring Boot indico @EnableAsync
2. Añado en esa misma clase un AsyncExecutor configurado:
3. Y finalmente al método que quiero que se ejecute de forma asíncrona (sobre un hilo) le añado la anotación @Async (y opcionalmente el TaskExecutor sobre el que ejecuta):
Voilá
al menos en springboot1 tener cuidado pq la asincronía de estos métodos solo funciona si son llamados desde otro bean, si la llamada se realiza desde el mismo bean, al menos yo no he sido capaz de que funcione