首页 文章

对数据源列表进行Spring事务管理

提问于
浏览
0

我有一个带有 DataSourceManager bean的Spring mvc rest webservice,它包含一个数据源映射 . 每个客户都有自己的数据库,因此拥有自己的数据源 . webservice以编程方式从 DataSourceManager 加载客户Datasource,如果它不存在则创建一个新的 .

有了这个实现,可以使用注释驱动的事务管理吗?我读到的所有示例都在配置文件中声明了一个或多个数据源 .

1 回答

  • 0

    最后我用这个bean解决了我的问题:

    @Bean
    @Scope(value=WebApplicationContext.SCOPE_REQUEST, proxyMode=ScopedProxyMode.TARGET_CLASS)
    public PlatformTransactionManager txManager(SessionInfo sessionInfo, DataSourceManager dsManager)   
    {               
        return dsManager.getTransactionManager(sessionInfo.getCustomerId()); 
    }
    

    其中 SessionInfo 是一个持有客户的会话bean, DataSourceManager 是一个包含所有数据源的全局bean . 每个Web请求都加载正确的事务管理器, @Transactional 注释与相应的数据源一起使用 . 似乎有效

相关问题