代码之家  ›  专栏  ›  技术社区  ›  yeppe

Spring事务管理器和DataSource Java Config可以在不创建新实例的情况下传递相同的bean id

  •  0
  • yeppe  · 技术社区  · 7 年前

    我想在我的数据源上引入一个事务管理。

    正在为事务管理器寻找使用相同数据源实例的正确方法。我的要求是指定Java配置方式,将DS的“相同实例”传递给事务管理器。如果我的理解有差距,请纠正我。

    false

    然而,在调试过程中,我注意到当我使用下面指定的java配置时,我得到了两个不同的数据源实例和 trx.commit() 不起作用。

    程序化事务管理 https://docs.spring.io/spring/docs/3.0.0.M4/reference/html/ch10s06.html )

        @Bean
        public DataSource dataSource() {
            return getMyDataSource();    //new instance of datasource.//this datasource is autocommit-false
        }
        @Bean
        public DataSourceTransactionManage trxManager() {
            return getTransationManage(dataSource()); // this creates another instance of dataSource
        }
    

    我们非常感谢您在这方面提供的任何帮助。

    我用的是Mybatis和Spring。基本上,我必须正确配置DataSouce。下面的链接很有用。

    管理CTM和PTM][2][Spring交易管理说明 ][3] [春与夏];JTA注释][4]

      [1]: https://stackoverflow.com/a/21202458/5086633
      [2]: http://www.mybatis.org/spring/transactions.html
      [3]: https://docs.spring.io/spring/docs/3.0.0.M4/reference/html/ch10s06.html
      [4]: https://docs.spring.io/spring/docs/current/spring-framework-reference/data-access.html#transaction
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   Mamun Sardar    7 年前

    使用的同一实例 dataSource

    @Bean
    @Autowired
    public DataSourceTransactionManage trxManager(DataSource dataSource) {
        return getTransationManage(dataSource);
    }
    
    推荐文章