spring-framework-reference.pdf (与spring-framework-3.1.0.M2捆绑在一起)的第342页指出:“通过使用DataSource引用直接实例化,可以在DAO实现中使用JdbcTemplate。”但是,它继续说,“应该始终将DataSource配置为Spring IoC容器中的bean。”
有人知道为什么不应该从Spring容器外部的普通JNDI查找中将DataSource提供给JdbcTemplate吗,例如How to programatically use Spring's JdbcTemplate?
发布于 2011-09-22 05:55:12
“应该始终将DataSource配置为Spring IoC容器中的bean。”
这篇注释似乎是为了澄清前面的陈述:
通过使用DataSource引用直接实例化,可以在DAO实现中使用JdbcTemplate,也可以在Spring容器中配置并作为bean引用提供给DAO。
我相信这些语句试图传达的信息是,当您在Spring中配置DAO时,您可以:
需要注意的是,如果Spring管理DAO及其依赖项,则无论哪种情况,DataSource都必须是Spring bean,因为需要将其注入到DataSource中以用于构造JdbcTemplate (情况1)或注入到JdbcTemplate本身(情况2)。
我并不认为这意味着在JdbcTemplate中使用的DataSource必须始终由Spring管理,并且只能由Spring管理。这张纸条确实给人留下了这种印象。这可能是值得提交一个bug的。
https://stackoverflow.com/questions/7505962
复制相似问题