3

我正在开发一个使用 SimpleJDBCTemplate 作为包装器来进行 JDBC 调用的应用程序。

但是,我选择使用 AbstractDataSource 而不是传统的数据源,因此我可以从多个数据源中进行选择。

我正在使用 ThreadLocal 注入密钥以选择适当的数据源。

但是,Spring 似乎急切地创建了我所有的 DAO 和我的 jdbcTemplate,因此我无法弄清楚如何让 jdbcTemplate 按需获取连接。

任何线索。?

4

1 回答 1

2

你的意思是AbstractRoutingDataSource?如果没有,你真的应该使用它,因为这正是它的用途。当它被添加到框架中时,Mark Fisher写了一篇关于它的有用博客。

是的,如果它们是单例,Spring 会急切地创建你的 DAO 和 JdbcTemplates,这是默认设置,但这并不意味着它们都立即获得连接。仅当您开始使用该数据源的某种操作时才会获得连接。通常,这将启动交易。换句话说,你说你想要发生的就是已经发生的事情。

于 2013-03-13T02:58:58.603 回答