开发手册 欢迎您!
软件开发者资料库

Java Spring、Spring MVC、Spring Boot和Spring Cloud简介及区别

本文主要介绍Java中Spring、Spring Mvc、Spring Boot和Spring Cloud框架的简介,以及它们之间的区别,还有Bean、Model、Entity的区别。

1、Spring

Spring框架是一个开放源代码的J2EE应用程序框架,由Rod Johnson发起,是针对bean的生命周期进行管理的轻量级容器(lightweight container)。 Spring解决了开发者在J2EE开发中遇到的许多常见的问题,提供了功能强大IOC、AOP及Web MVC等功能。Spring可以单独应用于构筑应用程序,也可以和Struts、Webwork、Tapestry等众多Web框架组合使用,并且可以与 Swing等桌面应用程序AP组合。因此, Spring不仅仅能应用于JEE应用程序之中,也可以应用于桌面应用程序以及小应用程序之中。Spring框架主要由七部分组成,分别是 Spring Core、 Spring AOP、 Spring ORM、 Spring DAO、Spring Context、 Spring Web和 Spring Web MVC。

2、Spring MVC

 Spring MVC 是 Spring 提供给 Web 应用的框架设计。Spring MVC 是一个典型的教科书式的 mvc 构架,不像 Struts 等都是变种或者不是完全基于 mvc 系统的框架。Spring MVC 角色划分清晰,分工明细,并且和 Spring 框架无缝结合。作为当今业界最主流的 Web 开发框架,Spring MVC 已经成为当前最热门的开发技能,同时也广泛用于桌面开发领域。Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的Spring MVC框架或集成其他MVC开发框架,如Struts1(现在一般不用),Struts 2(一般老项目使用)等等。

3、Spring Boot

 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。Spring Boot 去除了大量的 xml 配置文件,简化了复杂的依赖管理,配合各种 starter 使用,基本上可以做到自动化配置。Spring 可以做的事情,现在用 Spring boot 都可以做。

4、Spring Cloud

 Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有重复制造轮子,它只是将各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。

5、Spring、Spring MVC、Spring Boot和Spring Cloud区别

 1)Spring是一个一站式的轻量级的Java开发框架,核心是控制反转(IOC)和面向切面(AOP),针对于开发的WEB层(Spring Mvc)、业务层(Ioc)、持久层(jdbc Template)等都提供了多种配置解决方案;

2)Spring MVC是Spring基础之上的一个MVC框架,主要处理web开发的路径映射和视图渲染,属于Spring框架中WEB层开发的一部分;

3)Spring Boot框架相对于Spring MVC框架来说,更专注于开发微服务后台接口,不开发前端视图,同时遵循默认优于配置,简化了插件配置流程,不需要配置xml,相对Spring MVC,大大简化了配置流程;

4)Spring boot使用了默认大于配置的理念,集成了快速开发的Spring多个插件,同时自动过滤不需要配置的多余的插件,简化了项目的开发配置流程,一定程度上取消xml配置,是一套快速配置开发的脚手架,能快速开发单个微服务;

5)Spring Cloud大部分的功能插件都是基于Spring Boot去实现的,Spring Cloud关注于全局的微服务整合和管理,将多个Spring Boot单体微服务进行整合以及管理;  Spring Cloud依赖于Spring Boot开发,而Spring Boot可以独立开发;

6、Bean、Model、Entity的区别

1)Bean

任何一个java类都可以成为一个bean,这个类里包含对象的属性、get、set方法及其他的业务逻辑。

2)Model

model是MVC中的概念,可以理解为View层展示数据的对象。

3)Entity

数据表对应到实体类的映射。