0

我的道实现;

\\here are imports...
@Repository
public class CompanyDaoImp extends JdbcDaoSupport implements CompanyDao {


private static final String INSERTCOMPANY = "INSERT INTO b_company"
        + "(NAME)VALUES(?)";

这是我的豆子;

<?xml version=".........

 <!-- TODO add the component-scan and annotation-config elements -->

 <context:annotation-config/>
 <context:component-scan base-package="com.some.company"/>



 <bean id="companyAppDataSource"   
  class="org.springframework.jdbc.datasource.DriverManagerDataSource">
 <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
 <property name="url" value="jdbc:mysql://localhost:3306/companyapp"/>
 <property name="username" value="root"/>
 <property name="password" value="root"/>
 </bean>
 </beans>

我不明白为什么我一直接受例外;.......调用init方法失败;嵌套异常是 java.lang.IllegalArgumentException: 'dataSource' or 'jdbcTemplate' is required.........

4

1 回答 1

0

JdbcDaoSupport没有任何注释可以自动注入DataSource. 您必须setDataSource像这样覆盖该方法:

<bean name="companyDaoImp" class="...CompanyDaoImp">
    <property name="dataSource" ref="companyAppDataSource" />
</bean>

Spring 无法自动注入,DataSource因为您可能有多个数据源,在这种情况下,有必要告诉 Spring 您需要哪一个。

于 2013-06-23T11:24:28.963 回答