我正在开发一个使用 SimpleJDBCTemplate 作为包装器来进行 JDBC 调用的应用程序。
但是,我选择使用 AbstractDataSource 而不是传统的数据源,因此我可以从多个数据源中进行选择。
我正在使用 ThreadLocal 注入密钥以选择适当的数据源。
但是,Spring 似乎急切地创建了我所有的 DAO 和我的 jdbcTemplate,因此我无法弄清楚如何让 jdbcTemplate 按需获取连接。
任何线索。?
我正在开发一个使用 SimpleJDBCTemplate 作为包装器来进行 JDBC 调用的应用程序。
但是,我选择使用 AbstractDataSource 而不是传统的数据源,因此我可以从多个数据源中进行选择。
我正在使用 ThreadLocal 注入密钥以选择适当的数据源。
但是,Spring 似乎急切地创建了我所有的 DAO 和我的 jdbcTemplate,因此我无法弄清楚如何让 jdbcTemplate 按需获取连接。
任何线索。?
你的意思是AbstractRoutingDataSource
?如果没有,你真的应该使用它,因为这正是它的用途。当它被添加到框架中时,Mark Fisher写了一篇关于它的有用博客。
是的,如果它们是单例,Spring 会急切地创建你的 DAO 和 JdbcTemplates,这是默认设置,但这并不意味着它们都立即获得连接。仅当您开始使用该数据源的某种操作时才会获得连接。通常,这将启动交易。换句话说,你说你想要发生的就是已经发生的事情。