java.lang.IllegalArgumentException: No DataSource specified

版权声明:博客知识产权来源命运的信徒,切勿侵权 https://blog.csdn.net/qq_37591637/article/details/85244435

 错误信息如下:

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;
    }


总结一下:

没有指定数据源,就是xml配置有问题,没有配置属性或者是没有指定属性值的来源;

一般都是一个类中有复杂属性,应该在这个类的配置文件中指定确定的数据源;

猜你喜欢

转载自blog.csdn.net/qq_37591637/article/details/85244435