UserService.java
package com.shen.services;import com.shen.dao.SUserDAO;
import com.shen.pojo.SUser;public class UserService {
private SUserDAO userDAO;

public SUser regist(SUser user){
userDAO.save(user);
return user;
} public SUserDAO getUserDAO() {
return userDAO;
} public void setUserDAO(SUserDAO userDAO) {
this.userDAO = userDAO;
}
}
applicationContext.xml
<bean id="userService" class="com.shen.services.UserService"
abstract="false" scope="prototype" lazy-init="default"
autowire="default" dependency-check="default">
                
                <!--下面报错,Referenced bena 'userDAO' not found-->
<property name="userDAO">
<ref local="userDAO"/>
</property>
</bean>
我在UserService中已经定义了userDAO变量,而且有setter和getter方法了。
userDAO位置,com.shen.dao.SUserDAO.
搞了1天都想不明白,请知道的朋友指教下。谢谢。

解决方案 »

  1.   

    在applictionContext.xml中
    <bean d="userDAO" class="com.shen.dao.SUserDAO">
    如果有其他属性注入在这里继续写
    </bean>
      

  2.   


    <!-- =========   DAO的配置     ============ -->
    <bean id="keysDAO"
    class="com.lxitedu.classes.keysmanage.dao.impl.KeysDAOHibernateImpl">
    <property name="sessionFactory" ref="sessionFactory" />
    <property name="paginationDao" ref="paginationDao"></property>
    </bean>
    <!-- =========   Logic的配置       =========== -->

    <bean id="keysLogic" class="com.lxitedu.classes.keysmanage.logic.impl.KeysLogicImpl">
    <property name="keysDao" ref="keysDAO" />
    </bean>
    <!-- ========= Action的配置  ============ -->
    <bean id="displayKeysAction" class="com.lxitedu.classes.keysmanage.action.DisplayKeysAction" scope="prototype" >
    <property name="keysLogic" ref="keysLogic"></property>
    <property name="number" value="301003003"></property>
    </bean>
    不用在<bean>里面配置那么的属性吧!希望这些项目中的代码对你有用?是不是刚学!(我摸不到头脑)
      

  3.   

    userDAO 这个bean在xml也需要配置的
      

  4.   

    刚学的?userDAO完全没有配置啊 
      

  5.   

    在A类中调用Binterface接口的实现类Bimp; 
    xxxapplicationContext.xml: 
    <bean id="A"
            class="xxx.xxx.A">
            <property name="b">
                <ref local="Bimp" />
            </property>
    </bean>
    <bean id="Bimp" class="xxx.xxx.Bimp">
    </bean>A类中: 
    private Binterface b;
    加上setter方法;
    翻下书先,
      

  6.   

    楼主用的是local,所以需要在你当前配置service的xml文件中加入userDAO的配置1 、用 local 属性指定目标 bean 可以利用 xml 解析器的能力在同一个文件中验证 xml id 引用 . 如果在同一个文件中没有匹 配的元素 ,xml 解析器就会产生一个 error, 所以如果目标 bean 在同一个 xml 文件中 , 那么用 local 形式是最好的选择 .
    2 、可以这么说, <ref bean 是寻找全局中的 bean; <ref local 是寻找本 xml 文件中的 bean
    3 、 <ref> 提供了如下几方面的属性 :
    1)bean: 在当前 Spring XML 配置文件中,或者在同一 BeanFactory(ApplicationContext) 中的其他 JavaBean 中 .
    2)local: 在当前 Spring XML 配置文件中 . 其依赖的 JavaBean 必须存在于当前 Spring XML 培植文件中 . 如果借助 于 Spring IDE, 则在编译期可以对其依赖的 JavaBean 进行验证。基于 local 方式,开发者能够使用到 XML 本身提供 的优势,而进行验证。
    3)parent: 用于指定其依赖的父 JavaBean 定义。 
      

  7.   

    你的userDao配置呢?没在XML中配置当然找不到