一篇文章让你明白 spring ,springmvc和springboot,springcloud的区别

spring ,springmvc和springboot,springcloud的区别

  • spring
  • springMVC
        • 什么是 MVC?
        • MVC框架模式是一种复合模式,MVC的三个核心部件分别是
        • SpringMVC 简介 以及 特点
        • Spring MVC特点
  • springboot
          • springBoot 特点:
  • springCloud
          • springCloud 优点:
          • springCloud 缺点:
  • springMVC 和 springBoot 区别

spring

    1. Spring 是轻量级的开源的 JavaEE 框架
    2. Spring 可以解决企业应用开发的复杂性 
    3. Spring 有两个核心部分:IOC 和 Aop
       (1)IOC:控制反转,把创建对象过程交给 Spring 进行管理
       (2)Aop:面向切面,不修改源代码进行功能增强

Spring 特点

     (1)方便解耦,简化开发
     (2)Aop 编程支持
     (3)方便程序测试
     (4)方便和其他框架进行整合
	(5)方便进行事务操作
	(6)降低 API 开发难度

Spring 缺点

 1. Spring的组件代码是轻量级的,但它的配置却是重量级的. 
      
         开始,Spring用XML配置,而且是很多XML配置。Spring 2.5引入了基于注解的组件扫描,这消除了大量针对应用程序自身组件的显式XML配置。Spring 3.0引入了基于Java的配置,这是一种类型安全的可重构配置方式,可以代替XML。
         
 2. 在思考Spring特性配置和解决业务问题之间需要进行思维切换,所以编写配置挤占了编写应用程序逻辑的时间。和所有框架一样,Spring实用,但与此同时它要求的回报也不少。
 3. 项目的依赖管理也是一件耗时耗力的事情.
      在环境搭建时,需要分析要导入哪些库的坐标,而且还需要分析导入与之有依赖关系的其他库的坐标,一旦选错了依赖的版本,随之而来的不兼容问题就会严重阻碍项目的开发进度。

springMVC

什么是 MVC?
     MVC(Model View Controller)是一种**软件设计的框架模式**,它采用模型(Model)-视图(View)-控制器(controller)的方法把业务逻辑、数据与界面显示分离。把众多的业务逻辑聚集到一个部件里面,当然这种比较官方的解释是不能让我们足够清晰的理解什么是MVC的。用通俗的话来讲,MVC的理念就是把数据处理、数据展示(界面)和程序/用户的交互三者分离开的一种编程模式。
MVC框架模式是一种复合模式,MVC的三个核心部件分别是
    1:Model(模型):所有的用户数据、状态以及程序逻辑,独立于视图和控制器

    2:View(视图):呈现模型,类似于Web程序中的界面,视图会从模型中拿到需要展现的状态以及数据,对于相同的数据可以有多种不同的显示形式(视图)

    3:Controller(控制器):负责获取用户的输入信息,进行解析并反馈给模型,通常情况下一个视图具有一个控制器
SpringMVC 简介 以及 特点
Spring MVC采用了松散耦合的可插拔组件结构,比其他的MVC框架更具有灵活性和扩展性,Spring MVC通过使用一套注解,使一个Java类成为前端控制器(Controller),不需要实现任何接口,同时,Spring MVC支持RES形式的URL请求,除此之外,Spring MVC在在数据绑定、视图解析、本地化处理及静态资源处理上都有许多不俗的表现。

    Spring MVC围绕DispatcherServlet(前端控制器)为中心展开,DispatcherServlet(前端控制器)是Spring MVC的中枢,和MVC的思想一样,它负责从视图获取用户请求并且分派给相应的处理器处理,并决定用哪个视图去把数据呈现给给用户 
Spring MVC特点
    1:让我们能非常简单的设计出干净的Web层和薄薄的Web层;

    2:进行更简洁的Web层的开发;

    3:天生与Spring框架集成(如IoC容器、AOP等);

    4:提供强大的约定大于配置的契约式编程支持;

    5:能简单的进行Web层的单元测试;

    6:支持灵活的URL到页面控制器的映射;

    7:非常容易与其它视图技术集成,如Velocity、FreeMarker等,因为模型数据不放在特定的API里,而是放在一 个Model里(Map数据结构实现,因此很容易被其他框架使用);

    8:非常灵活的数据验证、格式化和数据绑定机制,能使用任何对象进行数据绑定,不必实现特定框架的API;

    9:提供一套强大的JSP标签库,简化JSP开发;

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

    11:更加简单的异常处理;

    12:对静态资源的支持; 支持Restful风格。

springboot

    1.  Spring的组件代码是轻量级的,但它的配置却是重量级的
 SpringBoot对Spring的缺点进行的改善和优化,基于约定优于配置的思想,可以让开发人员不必在配置与逻辑业务之间进行思维的切换,全身心的投入到逻辑业务的代码编写中,从而大大提高了开发的效率,一定程度上缩短了项目周期。
 
    2. SpringBoot是Spring项目中的一个子工程,与我们所熟知的Spring-framework 同属于spring的产品:
springBoot 特点:

1 .创建独立的spring应用程序

  1. 直接内嵌tomcat、jetty和undertow(不需要打包成war包部署)

  2. 提供了固定化的“starter”配置,以简化构建配置

  3. 尽可能的自动配置spring和第三方库

  4. 提供产品级的功能,如:安全指标、运行状况监测和外部化配置等

  5. 绝对不会生成代码,并且不需要XML配置

总之,Spring Boot为所有 Spring 的开发者提供一个开箱即用的、非常快速的、广泛接受的入门体验

springCloud

Spring Cloud 是一套完整的微服务解决方案,基于 Spring Boot 框架,准确的说,它不是一个框架,而是一个大的容器,它将市面上较好的微服务框架集成进来,从而简化了开发者的代码量。

springCloud 优点:
      1.  集大成者,Spring Cloud 包含了微服务架构的方方面面。
      2. 约定优于配置,基于注解,没有配置文件。
      3. 轻量级组件,Spring Cloud 整合的组件大多比较轻量级,且都是各自领域的佼佼者。
     4. 开发简便,Spring Cloud 对各个组件进行了大量的封装,从而简化了开发。
     5. 开发灵活,Spring Cloud 的组件都是解耦的,开发人员可以灵活按需选择组件。
springCloud 缺点:
  1. 项目结构复杂,每一个组件或者每一个服务都需要创建一个项目。
  2. 部署门槛高,项目部署需要配合 Docker 等容器技术进行集群部署,而要想深入了解 Docker,学习成本高

springMVC 和 springBoot 区别

 1. springMVC  是一个企业web开发的  MVC框架。包括了 前端视图,文件配置,后台接口逻辑处理等。XML。config等相关配置比较复杂。
 2. springMVC 是基于 Servlet 的一个MVC 框架,主要是解决 web 开发的问题。
 3. springBoot 框架相对于MVC框架来说更加专注于 开发 后台接口,不开发(少开发)前端视图,同时遵循 约定优于配置。简化了 插件配制流程,不需要XML配置,相对于 springMVC大大简化了配置流程。

你可能感兴趣的:(java基础,spring,spring,boot,java)