Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring事务管理器和DataSource Java Config可以在不创建新实例的情况下传递相同的bean id_Java_Spring_Datasource_Spring Transactions - Fatal编程技术网

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

Spring事务管理器和DataSource Java Config可以在不创建新实例的情况下传递相同的bean id,java,spring,datasource,spring-transactions,Java,Spring,Datasource,Spring Transactions,目标 我想在我的数据源上引入一个事务管理 正在为事务管理器寻找使用相同数据源实例的正确方法。我的要求是指定Java配置方式,将DS的“相同实例”传递给事务管理器。如果我的理解有差距,请纠正我 在我的例子中,我有一个数据源,类型为autocommitfalse,通过使用下面指定的事务管理器,我希望提交/回滚事务(例如,更新操作/恢复更新操作---当事务中存在错误/无错误时) 然而,在调试过程中,我注意到当我使用下面指定的java配置时,我得到了两个不同的数据源实例,trx.commit()不起作用

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

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

在我的例子中,我有一个数据源,类型为autocommit
false
,通过使用下面指定的事务管理器,我希望提交/回滚事务(例如,更新操作/恢复更新操作---当事务中存在错误/无错误时)

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

程序化事务管理 ()

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

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

[将参数动态传递给SpringBeans][1][Mybatis事务 管理CTM和PTM][2][Spring交易管理说明 ][3] [Spring&JTA注释][4]


要使用相同的
数据源实例
,请执行以下操作:

@Bean
@Autowired
public DataSourceTransactionManage trxManager(DataSource dataSource) {
    return getTransationManage(dataSource);
}

您从中复制此代码的类是否用@Configuration注释?I don’我不能确认,您是否可以同时包括类定义和创建上下文的位置?是的。这种声明
@Bean
依赖关系的形式只发生在
@Configuration
注释类中(如中所示)。你不需要通过任何考试。Spring将把bean注入到您的param中。是的,在类上需要@Configuration注释。示例:如果您面对的是数据源的多个bean,请使用
@bean(name=“myDataSource”)
重命名上述数据源bean,并相应地更改参数名称
dataSource myDataSource
  [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
@Bean
@Autowired
public DataSourceTransactionManage trxManager(DataSource dataSource) {
    return getTransationManage(dataSource);
}