Skip to content
Feego edited this page Aug 4, 2019 · 1 revision

1. 怎么解决线程上下文丢失(ThreadLocal)?

此框架会并发执行data provider, 每个data provider中所处的线程不固定. 某些框架基于ThreadLocal实现的Context将丢失.

解决方法:

  • 通过方法入参传递
  • 使用InheritableThreadLocal实现Context
  • 通过反射Copy ThreadLocal中的变量.
  • 把对Context的访问放在Root Data Provider中(此方法在主调线程中执行,不会丢失Context)

2. Spring事务传播被破坏了

此框架主要用来解决并发查询, 且每个查询比较独立的场景, 这类场景不需要事务. 不建议将此框架用在并发写入, 否则你可能遇到线程安全问题.