Spring框架
- Spring框架是一个为java应用程序的开发提供综合,广泛的基础性支持的java平台
- 集成的主要模块有:核心容器,数据访问/集成,Web,AOP(面向切面编程),工具,消息和测试模块
Spring核心
- IOC(Inversion of Control 控制反转):资源不再由使用资源双方进行管理,而是由不使用资源的第三方统一管理,
- 这样的好处有,第一资源的集中管理,实现资源的可配置和易管理
- 降低了使用资源双方的依赖程度,即降低耦合
- AOP(Aspect Oriented Programming 面向切面编程):OOP面向对象编程针对业务处理过程的实体及其属性和行为进行封装。但如果在开发过程中,如果产生横切性问题,比如日志记录,权限验证,监控性能,这时候AOP就上场了,AOP是通过预编译或者运行期动态代理实现的,
- 对业务逻辑的各个部分进行隔离,使得业务逻辑各部分之间耦合性降低,提高程序可重用性
Spring MVC
- 基于java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把Model,View,COntroller分离,将Web应用分成逻辑清晰的几个部分,简化开发。
- 核心思想是业务数据抽取和业务数据呈现相分离
- Model是业务数据
- View是为用户呈现的页面
- Controller调用业务逻辑产生合适的数据(Model),同时传递数据Model给视图层(View)呈现给用户
- Model对象负责在数据库1中存取数据
- controller控制器负责从视图读取数据,控制用户输入,并向1模型发送数据
SpringMVC核心组件:
- DispatcherServlet:前端控制器
- 作用:用户将请求交给DispatcherServlet,由他调用其他组件处理用户请求,分发到具体的Controller
- 从而获取需要的业务数据Model,Model再通过DispatcherServlet传递给View完成页面呈现
- DispatcherServlet的存在降低了组件之间的耦合
- HanderMapping:处理映射器
- 根据请求的URL,找到对应的处理器Hander
- Spring提供多种不同映射器实现不同的映射方式。比如:配置文件方式,实现接口方式,注解方式
- HanderAdapter:处理器适配器
- 将各种Controller适配成为DispatcherServlet可以使用的Handler:处理器(需要工程师开发)
- 编写Handler需要根据HandlerAdapter的要求去做,这样HandlerAdapter才能正确执行
- Handler是继HandlerAdapter前端控制器的后台控制器,在DispatcherServlet控制下对用户请求进行处理
- ViewResolver:视图解析器
- 首先根据逻辑视图名解析成具体的页面地址
- 然后对View进行渲染,将处理结果通过页面展示给用户
- View:视图(需要工程师开发jsp,html)
- View是一个接口,他的实现类支持不同类型(jsp,html,freemarker)
- View是一个接口,他的实现类支持不同类型(jsp,html,freemarker)
SpringMVC流程
- 用户发请求给前端控制器DispatcherServlet
- DIspatcherServlet收到请求后,调用HanderMapping处理器映射,请求获取Handle
- 处理器映射器根据请求URL找到具体处理器,生成处理器对象及处理器拦截器一并返回给DispatcherServlet
- DispatcherServlet调用HandlerAdapter处理器适配器
- HandlerAdapter经过适配,调用具体处理器(Handler)
- Handler执行完成返回ModelAndView
- HandlerAdapter将Handler执行结果ModelAndView返回给DispatcherServlet
- DispatcherServlet将ModelAndView传递给ViewResolver视图解析器进行解析
- ViewResolver解析后返回具体View
10.DispatcherServlet对View进行渲染视图(即将模型数据填充至试图)
DispatcherServlet响应用户