1.现象
在一个数据源很多的项目中,使用了Spring和mybatis框架,
但是由于需要联合查询,没有使用auto模式的dao,使用了继承JdbcDaoSupport的方式执行联合查询sql。
在配置文件中指定数据源如下
<bean id="devSqlConfigDAO" class="xxx.xxx.xxxDAO">
<property name="dataSource" ref="devDataSource"/>
</bean>
debug时也能进入JdbcDaoSupport中的setDataSource方法,且此时是正确的devDataSource对应的数据源
public final void setDataSource(DataSource dataSource) {
if (this.jdbcTemplate == null || dataSource != this.jdbcTemplate.getDataSource()) {
this.jdbcTemplate = createJdbcTemplate(dataSource);
initTemplateConfig();
}
}
但是执行后,却被替换成了旧的数据源dataSource,