AOP切面包含所有Service,当Service方法被调用时,获取当前线程对应的schema名称,拼接数据源,实时切换运行时数据源。

当数据源为空时,会以默认schema作为数据源。

以此为前提,当调用异步service时,有可能会在线程池中生成一个新线程,

而新生成的线程ThreadLocal中的变量为空,切面会默认跳过切换数据源的操作。使用默认数据源进行之后的操作。当开启Spring事务的时候,如果该默认数据源并没有相应的表,则会报错。

解决方法:将异步Service从AOP的切面中拿掉