zoukankan      html  css  js  c++  java
  • SpringMVC框架、Spring boot框架、SSM區別

    參考:

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

    Spring Cloud与Docker的完美结合 https://blog.csdn.net/huanglitao0912/article/details/82314123

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

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

    Springboot,SSM框架比较,区别   https://www.cnblogs.com/fightingting/p/10587613.html

     

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

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

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

    4、Spring boot可以离开Spring Cloud独立使用开发项目,但是Spring Cloud离不开Spring boot,属于依赖的关系。

     

    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 更高些

  • 相关阅读:
    在SQL中删除重复记录
    SQL语句生成SQLServer数据字典
    还原数据库时出现的问题
    Active Server Pages 错误 'ASP 0201'
    VS.NET新建项目时出现“两者需要映射到相同的服务器位置”
    cs0016: 未能写入输出文件“c:\windows\microsoft.net\***.dll”错误处理
    Svchost.exe进程详解
    5y5.us
    C# 中返回星期的函数
    怎样用C#实现完整文档打印功能
  • 原文地址:https://www.cnblogs.com/highpointengineer/p/10895256.html
Copyright © 2011-2022 走看看