FAQs - lvyahui8/spring-boot-data-aggregator GitHub Wiki
1. 怎么解决线程上下文丢失(ThreadLocal)?
此框架会并发执行data provider, 每个data provider中所处的线程不固定. 某些框架基于ThreadLocal实现的Context将丢失.
解决方法:
- 通过方法入参传递
- 使用
InheritableThreadLocal
实现Context - 通过反射Copy ThreadLocal中的变量.
- 把对Context的访问放在Root Data Provider中(此方法在主调线程中执行,不会丢失Context)
2. Spring事务传播被破坏了
此框架主要用来解决并发查询, 且每个查询比较独立的场景, 这类场景不需要事务. 不建议将此框架用在并发写入, 否则你可能遇到线程安全问题.