1、web容器启动,开始扫描所有被指定的spring配置文件。2、根据配置文件,实例化所有的bean对象,以java语法创建。3、加载spring配置文件配置的对象依赖关系,将有依赖关系的bean注入到相应的对象中。你这里报错是因为,datasource对象还没有被注入到UserDaoImpl中,而此时UserDaoImpl被实例化,datasource对象仍为空,所以报错了。