setDataSource()哪里被调用???

就是写在dao里面的开头用的setDataSource()函数
public void setDataSource(DataSource dataSource){
this.jdbcTemplate = new JdbcTemplate(dataSource);
}???

慕森卡
浏览 41回答 2
2回答

幕布斯6054654

这不是供你应用代码调用的,而是供运行环境Spring搭建环境时调用的。

慕勒3428872

这个问题问的不明不白!看上面的代码猜测,通过spring的依赖注入自动给dao那个类装配dataSource字段,也就是说那个setDataSource方法会被spring调用,调用的时候会将dataSource实例作为参数传给dao的setDataSource方法。只要配置正确,Spring就会这样做(调用setDataSource并传参数),至于setDataSource方法里面有什么那不关spring的事。也就是说你可以完全不按常理出牌,在setDataSource方法里面不给dataSource赋值,而是像给出的问题那样经过包装付给jdbcTemplate 。这有什么问题么??&nbsp;set方法会被Spring自动调用,具体时间是Spring实例化的时候,他会根据配置文件中的指示调用set方法的。你看看配置文件中有关dao那个bean的配置,应该有个类似<property name=dataSource value=*** 的定义。你可以学习一下Java的反射机制,也许会加深你对问题的理解。
打开App,查看更多内容
随时随地看视频慕课网APP