spring在web启动时加载后获取实例为null?

在启动项目时显示加载spring的配置文件成功了,使用时却获取不到,为什么?

spring中配置了: <!--spring自动扫描注解-->

 <context:component-scan base-package="com.fafasj"></context:component-scan>

web.xml配置了:

 <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationContext.xml</param-value>
    </context-param>

有两个类

//UserServiceImpl.class
@Component("userService")//将当前类交给spring管理
public class UserServiceImpl implements UserService {
    @Autowired
    private UserDao userDao;
    @Override
    public void say() {
        System.out.println("我说话了哦。。。"+userDao);//这里userDao为 null ?
        userDao.say();

    }
}
//UserDaoImpl.class
@Component("userDao")
public class UserDaoImpl implements UserDao {
    @Override
    public void say() {
        System.out.println("我也说话了哈");
    }
}

UserServiceImpl 检查一下 这个类 是否被你自己实例化了 自己实例化了的话 Spring不会注入里面的参数