java.lang.IllegalArgumentException: No DataSource specified
错误信息如下:
java.lang.IllegalArgumentException: No DataSource specified at org.springframework.util.Assert.notNull(Assert.java:112) at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:97) at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:77) at cn.com.day05.TestFact.test4(TestFact.java:16) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
原因是
我在类中用到了jdbcTemplate属性
之前用的是注解的方式配置是:
@Autowired private JdbcTemplate jdbcTemplate=new JdbcTemplate();
但是后来用的是基于xml配置的形式
就不能通过注解的方式自动装配了,只能是通过xml
<bean id="bs" class="cn.com.day05.BookShopDaoImpl"> <property name="jdbcTemplate" ref="source"></property> </bean>
因此类里面应该是
private JdbcTemplate jdbcTemplate; public void setJdbcTemplate(JdbcTemplate jdbcTemplate) { this.jdbcTemplate = jdbcTemplate; }
总结一下:
一般都是一个类中有复杂属性,应该在这个类的配置文件中指定确定的数据源;