请求范围使我们能够在整个请求处理过程中跟踪明智的变量。但是我认为这取决于线程局部变量。我认为使用Kotlin协程将破坏Guice注入请求范围语义。
答案 0 :(得分:2)
协程并不总是在同一个线程上运行,因此线程局部变量会给您带来麻烦,例如Guice请求范围。
但是可以在协程之间传递线程局部变量:https://github.com/Kotlin/kotlinx.coroutines/blob/master/docs/coroutine-context-and-dispatchers.md#thread-local-data
我不认识Guice,所以不知道是否有将ThreadContextElement
集成到此框架中的方法。
另请参阅:How to use code that relies on ThreadLocal with Kotlin coroutines