<bean id="insertDAO" class="dao.InsertDAOImpl"> 
<property name="sqlMapper" > 
<bean id="sqlMapper" class="com.ibatis.sqlmap.client.SqlMapClient"> </bean> 
</property> 
</bean> 
我在做一个小的java project的演示,使用spring进行dao的注入。 
dao实现中使用了sqlMapper,但是我注入这样子后提示sqlMapper是一个接口 诸如此类情形应该怎么办? 
谢谢指教。 错误信息: 
Destroying singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@133796: defining beans [insertDAO]; root of factory hierarchy 
Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'insertDAO' defined in class path resource [applicationContext-dao.xml]: Cannot create inner bean 'sqlMapper' while setting bean property 'sqlMapper'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlMapper' defined in class path resource [applicationContext-dao.xml]: Instantiation of bean failed; nested exception is java.lang.IllegalStateException: No bean class specified on bean definition 
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlMapper' defined in class path resource [applicationContext-dao.xml]: Instantiation of bean failed; nested exception is java.lang.IllegalStateException: No bean class specified on bean definition 
Caused by: java.lang.IllegalStateException: No bean class specified on bean definition 

解决方案 »

  1.   


    http://java.chinaitlab.com/Spring/373704.html
      

  2.   

    问题已经解决,是我的spring配置上面的问题---》
    <beans>
    <bean id="insertDAO" class="dao.InsertDAOImpl">
    <property name="sqlMapClient" ref="sqlMapClient"></property>
    </bean>

    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
    <property name="url" value="jdbc:mysql://127.0.0.1:3306/student"></property>
    <property name="username" value="root"></property>
    <property name="password" value="123456"></property>
    </bean>
    <!-- 
    <bean id="sqlMap" class="org.springframework.orm.ibatis.SqlMapFactoryBean">
    <property name="configLocation" value="SqlMapConfig.xml"></property>
    </bean>
     -->

    <bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
    <property name="configLocation" value="SqlMapConfig.xml"></property>
    <property name="dataSource" ref="dataSource"></property>
    </bean>

    <!-- 
    <bean id="sqlMapper" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
    <property name="configLocation" value="SqlMapConfig.xml"></property>

    </bean>
     -->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSource" ref="dataSource"></property>
    </bean>

    </beans>