一个为 userDAO  注入了一个实例   一个 没有。你用 userDAO  去调用一个 方法  看  会不会抛 NullPointException  就晓得他们的区别了。
 

解决方案 »

  1.   

    恩,都可以!第一种是ref到userDAO!如果你采用了第一种配置,那必须在UserService 里注入userDAO,否则会报错的!
    而第二种配置即使不注入也不会存在错误!
      

  2.   

    <bean id="userService"  class="com.chinantn.system.service.Impl.UserService" /> 
    你确定这样可以?
    你有没有调用userService的业务方法啊?
      

  3.   

    我调用了,java代码如下
    public class UserService implements IUserService { private IUserDAO userDAO = null;

    public IUserDAO getUserDAO() {
    return userDAO;
    } public void setUserDAO(IUserDAO userDAO) {
    this.userDAO = userDAO;
    }

    /* 
     * @see com.chinantn.system.service.UserService#getAllUser()
     */
    public List<User> getAllUsers() throws ServiceException {

    return userDAO.getAllUsers();
    }
    执行完了,没报错,我很纳闷,郁闷中。
      

  4.   

    第一个应用了spring的依赖注入,第二个没有。在spring启动时依赖注入的直接加载将userDAO分配给UserService 中的userDAO属性
      

  5.   

    spring有一个根据bean的name自动装配的功能,该不是spring给你自动装配了吧?
      

  6.   

    楼主如果调用UserService类里的方法,就会出错了 (空指针异常)