@Component
class AsyncComponent{
@Async
fun doSomething() {
println("${Thread.currentThread()}:: start")
println("${Thread.currentThread()}:: end")
}
}
@Service
class TestService(
private val service: AsyncComponent
) {
fun execute() {
println("${Thread.currentThread()}:: service start")
service.doSomething()
println("${Thread.currentThread()}:: service end")
}
}
----------------------------------------------------
Thread[Test worker,5,main]:: service start
Thread[Test worker,5,main]:: service end
Thread[junnyland-1,5,main]:: start
Thread[junnyland-1,5,main]:: end
@Component
class AsyncComponent {
@Async
fun doResponse(): Future<String> {
println("${Thread.currentThread()}:: start")
println("${Thread.currentThread()}:: end")
return AsyncResult("COMPLETE")
}
}
@Service
class TestService(
private val service: AsyncComponent
) {
fun executeCallback() {
println("${Thread.currentThread()}:: service start")
val doResponse = service.doResponse()
println("${Thread.currentThread()}:: service end : ${doResponse.get()}")
}
}
----------------------------------------------------
Thread[Test worker,5,main]:: service start
Thread[junnyland-1,5,main]:: start
Thread[junnyland-1,5,main]:: end
Thread[Test worker,5,main]:: service end : COMPLETE