一、Spring
1、2大核心:IOC/AOP
二、Spring MVC
1、MVC里面的5大组件
①DispatcherServlet:中央控制器,负责所有链接的转发,也就说所有的请求都要经过它②HandlerMapping:处理请求和方法之间的映射,即url和controller方法之间的映射,这个key-value存在一个map中, DispatcherServlet正是通过它来找到的controller
③Controller:负责处理用户的请求,用户的每一个请求映射到controller的一个方法上
④ModelAndView:封装了视图和页面数据
⑤ViewResolver:视图解析器,负责查找对应的jsp页面
总之,以上5个缺一不可,springmvc的访问过程就是①-⑤的顺序去访问。
2、其他组件
例如国际化,上传,异常处理,静态映射。。。。。略
3、Spring MVC 请求-响应完整流程
三、Spring 与Spring MVC 关系
(1)springmvc脱离了spring配置部分仍然是可以跑通的,即它不依赖于spring,即
可以把web.xml配置spring的部分删除。
(2)如果系统中使用了spring,那么spring负责service和mapper代理的管理
(3)springmvc负责controller的管理,注意spring和springmvc不要重复扫包
(4)在ssm这种架构下,有几个IOC容器?
两个IOC容器,即spring容器和springmvc容器,其中spring容器装的是service/mapper代理/事务管理器/连接池/SqlsessionFactory等。
springmvc容器装的是Controller/视图处理器/文件上传处理器/国际化/异常/拦截器等。
(5)两个容器之间bean的访问
springmvc可以访问spring中的对象,即@Autowired能拿到,反之不行。
可以想象成两个圈子,每个圈子中的组件由不同的容器去管理、去实例化。