如何设置Spring Boot AbstractRoutingDatasource,使事务和hibernate能够正确地处理Spring数据?

如何设置Spring Boot AbstractRoutingDatasource,使事务和hibernate能够正确地处理Spring数据?,hibernate,spring-boot,spring-data-jpa,spring-data,spring-transactions,Hibernate,Spring Boot,Spring Data Jpa,Spring Data,Spring Transactions,我需要您帮助在Spring Boot中为多个DBs设置AbstractRoutingDatasource,以便事务和Hibernate正常工作。 我读了很多关于它的博客: 和1。看起来很有希望,但它不包含 @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class, DataSourceTransactionManagerAutoConfiguration.class, Hibernat

我需要您帮助在Spring Boot中为多个DBs设置AbstractRoutingDatasource,以便事务和Hibernate正常工作。 我读了很多关于它的博客:

  • 和1。看起来很有希望,但它不包含

    @SpringBootApplication(exclude = { 
        DataSourceAutoConfiguration.class,
        DataSourceTransactionManagerAutoConfiguration.class,
        HibernateJpaAutoConfiguration.class })
    
    像在3(

    )

    所以我的问题是,配置AbstractRoutingDatasource的正确方法是什么?我可以像1中那样配置数据源吗。(以下是源代码:)Spring Boot将以正确的方式自动配置transactionmanager和hibernate,还是必须像3中那样手动配置所有内容

    期望的行为应该是:

    • 我在代码中选择DB1并启动一个事务,该事务应该独立工作(仅在DB1上)
    • 稍后,我在代码中选择DB2并启动一个事务,该事务应该独立工作(仅在DB2上)
    • 在Hibernate/JPA中,DB1上的事务和DB2上的事务之间不应该共享对象/缓存
    • 它应该与Spring数据一起工作

    您尝试过什么。。。提示,我建议从1开始,另一个提示是,如果Spring Boot已经找到了一个类型的bean(通常),它不会自动配置bean,所以如果您定义了数据源,它不会创建一个。其他一切都将为您创建(这就是Spring Boot的全部要点)。应该在Spring Boot中创建work和transactionmanager+hibernate,但是默认transactionmanager配置和hibernate配置如何处理不同的数据源?它们是否可以毫无问题地处理多个数据源,或者是否应该为每个新数据源创建不同的transactionmanager配置和hibernate配置?只有一个数据源,即路由数据源。在它下面是多个并不重要。因此,我对您尝试过的内容进行了初步的评论…然后是1。应该可以毫无问题地工作。谢谢你试过什么。。。提示,我建议从1开始,另一个提示是,如果Spring Boot已经找到了一个类型的bean(通常),它不会自动配置bean,所以如果您定义了数据源,它不会创建一个。其他一切都将为您创建(这就是Spring Boot的全部要点)。应该在Spring Boot中创建work和transactionmanager+hibernate,但是默认transactionmanager配置和hibernate配置如何处理不同的数据源?它们是否可以毫无问题地处理多个数据源,或者是否应该为每个新数据源创建不同的transactionmanager配置和hibernate配置?只有一个数据源,即路由数据源。在它下面是多个并不重要。因此,我对您尝试过的内容进行了初步的评论…然后是1。应该可以毫无问题地工作。谢谢