Spring批处理中的抽象路由数据源

时间:2014-02-25 11:02:59

标签: spring spring-batch

我正在尝试在我的spring批处理应用程序中实现AbstractRoutingDatasource。 在调用方法之前,我的数据源在DAO层切换。

但问题似乎是春季批次中的所有批处理作业都是基于事务的。 由于它们是基于事务的,因此在事务开始之前所有dataSource都会被设置,并且无法在事务中间切换数据源。

我的假设是对的吗?和任何解决方案/解决方法?

1 个答案:

答案 0 :(得分:0)

使用路由数据源需要一张地图,该地图提供您选择的密钥和值,即数据源。您可以决定使用哪种类型的密钥 - 例如,针对不同国家/地区的区域设置。然后在实现AbstractRoutingDataSource的类中,提供从数据源映射中检索的键。

是的 - 在应用程序设置期间配置了map,但您的AbstractRoutingDataSource动态决定使用哪个数据源。

@Override
protected Object determineCurrentLookupKey() {
    return LocaleContextHolder.getLocale();
}