就是寫在dao里面的開頭用的setDataSource()函數public void setDataSource(DataSource dataSource){this.jdbcTemplate = new JdbcTemplate(dataSource);}???
2 回答

慕勒3428872
TA貢獻1848條經驗 獲得超6個贊
這個問題問的不明不白!
看上面的代碼猜測,通過spring的依賴注入自動給dao那個類裝配dataSource字段,也就是說那個setDataSource方法會被spring調用,調用的時候會將dataSource實例作為參數傳給dao的setDataSource方法。只要配置正確,Spring就會這樣做(調用setDataSource并傳參數),至于setDataSource方法里面有什么那不關spring的事。也就是說你可以完全不按常理出牌,在setDataSource方法里面不給dataSource賦值,而是像給出的問題那樣經過包裝付給jdbcTemplate 。
這有什么問題么??
set方法會被Spring自動調用,具體時間是Spring實例化的時候,他會根據配置文件中的指示調用set方法的。你看看配置文件中有關dao那個bean的配置,應該有個類似<property name=dataSource value=*** 的定義。你可以學習一下Java的反射機制,也許會加深你對問題的理解。
- 2 回答
- 0 關注
- 66 瀏覽
添加回答
舉報
0/150
提交
取消