Spring正是您想要的-
AbstractRoutingDataSource。请参阅此博客文章以了解如何使用它。在您的情况下,您需要在一个请求期间切换数据源,因此您将需要进行2个事务处理,并通过更改上的数据源指示符在它们之间切换数据源
ThreadLocal:
- 对于这些DAO,请使用不同的程序包,类名或方法名来划分包装的Service层。
- 向Spring表示服务层方法调用应在自己的事务上下文中运行,方法是使用注释
@Transactional(propogation=Propogation.REQUIRES_NEW)
- 创建一个Aspect(使用AspectJ批注
@Aspect
)以在服务层方法调用(使用@Around
)周围触发,以ThreadLocal
在该方法调用之前设置值,并在之后取消设置 - 在中
@Controller
,只需调用Service层方法。Aspect将负责设置值以指示要使用的数据源,并且AbstractRoutingDataSource
将在每个事务的上下文中使用该数据源。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)