Spring框架介绍

主流框架

  • Spring
  • SpringMVC
  • SpringBoot
  • SpringCloud

Spring框架介绍_第1张图片 

Spring (Core)

我们说到Spring,一般指代的是SpringFramework,它是一个轻量级控制反转(IOC)和面向切面(AOP)的容器框架,为开发者提供了一个简易的开发方式。

  • IOC,它实现了容器对Bean对象的管理、降低组件耦合,使各层服务解耦。
  • AOP,面向切面编程将程序逻辑分解为称为所谓关注点的不同部分。跨越应用程序多个点的功能称为跨领域问题,这些跨领域问题在概念上与应用程序的业务逻辑分离。常见的应用场景,如日志记录,声明式事务,安全性,缓存等。

如果说IOC依赖注入可以帮助我们将应用程序对象相互分离,那么AOP可以帮助我们将交叉问题与它们所影响的对象分离。二者目的都是使服务解耦,使开发简易。

当然,除了Spring 的两大核心功能,还有:

  • Spring JDBC
  • Spring MVC
  • Spring ORM·
  • Spring JMS
  • Spring Test

其实不通过Spring框架依然可以实现这些功能特定,但是Spring 提供了更优雅的抽象接口以方便对这些功能的组装,同时又给予每个具体实现以灵活的配置;另外,基于Spring,可以方便的与其他框架进行集成,如hibernate,ibatis等。Spring官方的原则是绝不重复造轮子,有好的解决方案只需要通过Spring进行集成即可。纵览Spring的结构,你会发现SpringFramework 本身并未提供太多具体的功能,它主要专注于让你的项目代码组织更加优雅,使其具有极好的灵活性和扩展性,同时又能通过Spring集成业界优秀的解决方案。

SpringMVC

Spring与MVC本身就解释什么是springMVC,即Spring + MVC,MVC为现代web项目开发的一种很常见的模式,简言之C(控制器)将V(视图、用户客户端)与M(模块,业务)分开构成了MVC,业内常见的MVC模式的开发框架有Struts。

Spring MVC是Spring的一部分,Spring出来以后,大家觉得很好用,于是按照这种模式设计了一个MVC框架(一些用Spring解耦的组件),主要用于开发WEB应用和网络接口,它是Spring的一个模块,通过DispatcherServlet, ModelAndView 和View Resolver,让应用开发变得很容易。

SpringBoot

SpringBoot是一套整合了框架的框架。为解决Spring框架配置文件的繁琐、搭建服务的复杂性。
它的设计理念:约定优于配置(convention over configuration)。
基于此理念实现了自动配置,且降低项目搭建的复杂度。
搭建一个接口服务,通过SpringBoot几行代码即可实现。基于Spring Boot,不是说原来的配置没有了,而是Spring Boot有一套默认配置,我们可以把它看做比较通用的约定,而Spring Boot遵循的是约定优于配置原则,同时,如果你需要使用到Spring以往提供的各种复杂但功能强大的配置功能,Spring Boot一样支持。

在Spring Boot中,可以引入starter形式的包,如:

  • spring-boot-starter-web-services,针对SOAP Web Services
  • spring-boot-starter-web,针对Web应用与网络接口
  • spring-boot-starter-jdbc,针对JDBC
  • spring-boot-starter-cache,针对缓存支持

Spring Cloud

虽然它带有“Cloud”,但是它并不是针对云计算的解决方案,而是在 Spring Boot 基础上构建的,用于快速构建分布式系统的通用模式的工具集。
使用 Spring Cloud 开发的应用程序非常适合在 Docker 或者 PaaS 上部署,所以又叫云原生应用。云原生可以简单理解为面向云环境的软件架构。
Spring Cloud是一系列框架的有序集合。它利用 Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、熔断器、数据监控等,都可以用 Spring Boot的开发风格做到一键启动和部署。Spring并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过 Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,基于约定大于配置原则,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。

微服务是可以独立部署、水平扩展、独立访问(或者有独立的数据库)的服务单元, Spring Cloud就是这些微服务的大管家,采用了微服务风格架构之后,项目的数量会非常多, Spring Cloud做为大管家就需要提供各种方案来维护整个生态。专注于提供良好的开箱即用体验,并提供可扩展机制。

Spring Cloud就是一套分布式服务治理的框架,既然它是一套服务治理的框架,那么它本身不会提供具体功能性的操作,更专注于服务之间的通讯、熔断、监控等。因此就需要很多的组件来支持一套功能。

 

你可能感兴趣的:(Spring,spring,java)