來源:lt3 發(fā)布時間:2018-11-14 11:23:49 閱讀量:945
在applicationContext.xml中配置了一個新的DataSource,同時,添加一個新的jdbcTemple,代碼如下:
<bean id="hrjdbcTemple" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="hrdataSource"/>
</bean>
1
2
3
但是,在項目啟動時,報了這樣的錯誤,如下:
expected single matching bean but found 2: jdbcTemple, hrjdbcTemple
1
起初,懷疑是datasource的問題,但是不過我如何嘗試,都說明datasource是沒有任何問題的。于是,從jdbcTemple入手,查找了下網上資料,實例化jdbcTemple大概有三種,由于項目是用掃描注入的,所以有些方法就用不了。于是,從配置注入的想法暫時取消,上面配置只好暫時作罷,先注釋掉了。以下是我從代碼中實例化jdbcTemple的方法,如下:
private JdbcTemplate hrjdbcTemplate;
@Autowired
public void setHrjdbcTemplate(@Qualifier("hrdataSource") DataSource dataSource) {
this.hrjdbcTemplate = new JdbcTemplate(dataSource);
}
1
2
3
4
5
6
此代碼是直接寫在service中的。
說明:
為了跟項目中原有的jdbcTemple做區(qū)分,這里用hrjdbcTemplate,實例其實是一樣的。
這里要注意的是DataSource,這個是比較關鍵的,@Qualifier(“hrdataSource”)
這個是配置文件中配置的新數據源,在這里明確指定。
關于DataSource的導入jar,也是個問題,因為配置文件中使用的是tomcat的pool下的DataSource,所以這里也使用該jar,但是編譯就一直報錯,查看了下jar都有。后來改成了java.sql下面的jar,就OK了。原因未知!
雖然,目前是可以正常運行,但是對于以上情況也是一知半解的。
---------------------
作者:lt3
來源:CSDN
原文:https://blog.csdn.net/lts_cxl/article/details/51143083
版權聲明:本文為博主原創(chuàng)文章,轉載請附上博文鏈接!