一、spring有两大核心
1、 第一大核心,ioc(inversion of control)控制反转
让一个对象的产生不用再依靠代码new,而是通过java 反射技术动态的去创建调用对象,spring运行后通过加载xml配置文件来动态的创建对象和调用对象里的方法。
2、第二大核心,aop(Aspect oriented programing)面向切面编程
这是一种程序设计的规范,以一种称为切面语言为基础,切面是一种新的模块化机制,用来描述分散在对象、类或方法中的横切关注点(crosscutting concern)。
spring是个容器,要想使用spring的服务,必须将对象放入容器中。
二、SpringMVC运行原理

(1) Http请求:客户端请求提交到DispatcherServlet。
(2) 寻找处理器:由DispatcherServlet控制器查询一个或多个HandlerMapping,找到处理请求的Controller。
(3) 调用处理器:DispatcherServlet将请求提交到Controller。
(4)(5)调用业务处理和返回结果:Controller调用业务逻辑处理后,返回ModelAndView。
(6)(7)处理视图映射并返回模型: DispatcherServlet查询一个或多个ViewResoler视图解析器,找到ModelAndView指定的视图。
(8) Http响应:视图负责将结果显示到客户端。
依赖注入的意义:保留抽象接口,让组件(Component)依赖于抽象接口,当组件要与其他实际的对象发生依赖关系时,由抽象接口来注入依赖的实际对象。