【发布时间】:2014-03-05 13:01:46
【问题描述】:
我想在 Spring+MyBatis 项目中动态更改 Datasource 属性。
问题是在Spring + MyBatis集成中,我们无法在运行时动态设置数据源属性。
目前我正在使用以下代码来设置凭据:
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close" p:driverClassName="${jdbc.driverClassName}"
p:url="${jdbc.url}" p:username="${jdbc.username}"
p:password="${jdbc.password}" />
我尝试使用 UserCredentialsDataSourceAdapter 选项在运行时更改密码,但我无法返回 dataSource 对象作为 MyBatis 用于连接
ApplicationContext context = ApplicationContextUtils.getApplicationContext();
UserCredentialsDataSourceAdapter ds = (UserCredentialsDataSourceAdapter) context.getBean("dataSource");
ds.setCredentialsForCurrentThread("test", "test");
我被困在这里,我无法使用 dataSource 元素 ds 来为 MyBatis 建立连接。请帮我解决这个问题。
【问题讨论】:
-
没有。这对我来说不会锻炼 AbstractRoutingDataSource 用于动态路由已经定义数据源参数的数据源,但在我的情况下,我想在运行时根据登录用户动态确定用户 ID 和密码。
-
这个问题有什么解决办法吗?
标签: spring jdbc datasource mybatis