SpringMVC框架、Spring boot框架、SSM區別

參考:html

构建微服务:Spring boot 入门篇       https://www.cnblogs.com/ityouknow/p/5662753.html前端

Spring Cloud与Docker的完美结合 http://www.javashuo.com/article/p-wmxzgqpr-kn.htmlweb

SpringCloud与SpringBoot区别  https://blog.csdn.net/terrydu/article/details/88565833ajax

Spring,Spring MVC及Spring Boot区别   https://www.jianshu.com/p/42620a0a2c33spring

Springboot,SSM框架比较,区别   http://www.javashuo.com/article/p-xiubvirk-de.html服务器

 

一、Spring boot 是 Spring 的一套快速配置脚手架,能够基于spring boot 快速开发单个微服务;Spring Cloud是一个基于Spring Boot实现的云应用开发工具;网络

二、Spring boot专一于快速、方便集成的单个个体,Spring Cloud是关注全局的服务治理框架;数据结构

三、spring boot使用了默认大于配置的理念,不少集成方案已经帮你选择好了,能不配置就不配置,Spring Cloud很大的一部分是基于Spring boot来实现。架构

四、Spring boot能够离开Spring Cloud独立使用开发项目,可是Spring Cloud离不开Spring boot,属于依赖的关系。app

 

1.1 SpringMVC 概述 

1) Spring 为展示层提供的基于 MVC 设计理念的优秀的 Web 框架,是目前最主流的

MVC 框架之一

2Spring3.0 后全面超越 Struts2,成为最优秀的 MVC 框架。

3Spring MVC 经过一套 MVC 注解,让 POJO 成为处理请求的控制器,而无须实现任

何接口。

4)支持 REST 风格的 URL 请求。

5)采用了松散耦合可插拔组件结构,比其余 MVC 框架更具扩展性和灵活性。

 

1.1 SpringMVC是什么

 

1)一种轻量级的、基于MVC的Web层应用框架。偏前端而不是基于业务逻辑层。Spring框架的一个后续产品。

 

2Spring框架结构图(新版本):

1.3 SpringMVC能干什么

1) 天生与Spring框架集成,如:(IOC,AOP)

2) 支持Restful风格

3) 进行更简洁的Web层开发

4) 支持灵活的URL到页面控制器的映射

5) 很是容易与其余视图技术集成,如:Velocity、FreeMarker等等

6) 由于模型数据不存放在特定的API里,而是放在一个Model里(Map数据结构实现,所以很容易被其余框架使用)

7) 很是灵活的数据验证、格式化和数据绑定机制、能使用任何对象进行数据绑定,没必要实现特定框架的API

8) 更加简单、强大的异常处理

9) 对静态资源的支持

10) 支持灵活的本地化、主题等解析

 

1.4 SpringMVC怎么玩

1) 将Web层进行了职责解耦,基于请求-响应模型

2) 经常使用主要组件

① DispatcherServlet:前端控制器

② Controller:处理器/页面控制器,作的是MVC中的C的事情,但控制逻辑转移到前端控制器了,用于对请求进行处理

③ HandlerMapping :请求映射处处理器,找谁来处理,若是映射成功返回一个HandlerExecutionChain对象(包含一个Handler处理器(页面控制器)对象、多个HandlerInterceptor拦截器对象)

④ View Resolver : 视图解析器,找谁来处理返回的页面。把逻辑视图解析为具体的View,进行这种策略模式,很容易更换其余视图技术;

n 如InternalResourceViewResolver将逻辑视图名映射为JSP视图

⑤ LocalResolver:本地化、国际化

⑥ MultipartResolver:文件上传解析器

⑦ HandlerExceptionResolver:异常处理器

 

1.5 REST是什么?

1) REST:即 Representational State Transfer(资源)表现层状态转化。是目前最流行

的一种互联网软件架构。它结构清晰、符合标准、易于理解、扩展方便,因此正获得愈来愈多网站的采用

① 资源(Resources):网络上的一个实体,或者说是网络上的一个具体信息。

它能够是一段文本、一张图片、一首歌曲、一种服务,总之就是一个具体的存在。

能够用一个URI(统一资源定位符)指向它,每种资源对应一个特定的 URI 。

获取这个资源,访问它的URI就能够,所以 URI 即为每个资源的独一无二的识别符。

② 表现层(Representation):把资源具体呈现出来的形式,叫作它的表现层(Representation)。好比,文本能够用 txt 格式表现,也能够用 HTML 格式、XML 格式、JSON 格式表现,甚至能够采用二进制格式。

③ 状态转化(State Transfer):每发出一个请求,就表明了客户端和服务器的一次交互过程。HTTP协议,是一个无状态协议,即全部的状态都保存在服务器端。所以,若是客户端想要操做服务器,必须经过某种手段,让服务器端发生“状态转化”(State Transfer)

而这种转化是创建在表现层之上的,因此就是 “表现层状态转化”。

④ 具体说,就是 HTTP 协议里面,四个表示操做方式的动词:GET、POST、PUT、DELETE。

它们分别对应四种基本操做:GET 用来获取资源,POST 用来新建资源,PUT 用来更新资源,DELETE 用来删除资源。

 

2. Spring SpringMVC的整合问题: 

1) 须要进行 Spring 整合 SpringMVC ? 

2) 仍是否须要再加入 Spring IOC 容器 ? 

3) 是否须要在web.xml 文件中配置启动 Spring IOC 容器的 ContextLoaderListener ?

 

须要: 一般状况下, 相似于数据源, 事务, 整合其余框架都是放在 Spring 的配置文件   (而不是放在 SpringMVC 的配置文件中). 实际上放入 Spring 配置文件对应的 IOC 容器中的还有 Service Dao.

不须要: 都放在 SpringMVC 的配置文件中. 也能够分多个 Spring 的配置文件, 而后使 import 节点导入其余的配置文件 

 

 

3. SpringIOC 容器和 SpringMVC IOC 容器的关系

 

SpringMVC IOC 容器中的 bean 能够来引用 Spring IOC 容器中的 bean.

 

返回来呢 ? 反之则不行. Spring IOC 容器中的 bean 却不能来引用 SpringMVC IOC 容器中的 bean 

 

1)  Spring MVC 配置文件中引用业务层的 Bean

 

2) 多个 Spring IOC 容器之间能够设置为父子关系,以实现良好的解耦。

 

3) Spring MVC WEB 层容器可做为 “业务层” Spring 容器的子容器:

 

WEB 层容器能够引用业务层容器的 Bean,而业务层容器却访问不到 WEB 层容器的 Bean

4. SpringMVC对比Struts2

1 Spring MVC 的入口是 Servlet, Struts2 FilterSpring MVC 会稍微比 Struts2 快些.

2 Spring MVC 是基于方法设计, Sturts2 是基于类,

    每次发一次请求都会实例一个 Action.

1) Spring MVC 使用更加简洁, 开发效率Spring MVC确实比 struts2 : 支持 JSR303,  ajax 的请求更方便

2) Struts2 OGNL 表达式使页面的开发效率相比 Spring MVC 更高些

相关文章
相关标签/搜索