springで非同期処理といったら対象メソッドに@Asyncアノテーションを付与するのが一般的ですが、呼び出し先を修正したくない時とかに役に立つのがCompletableFuture.runAsync
これは呼び出し元で
CompletableFuture<Void> future = CompletableFuture.runAsync(
() -> {
Sytem.out.print(“hello”);
});
というような記述にすれば中の処理が非同期で実行される便利なもの。