一 概述

Spring Cloud 基于 Spring Boot框架开发应用,为微服务开发中的架构问题提供了一整套的解决方案:如服务注册与发现,服务消费,服务容错,API网关,分布式调用追踪和分布式配置管理等。

二 Spring Cloud与 Spring Boot之间的联系、

  • 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,属于依赖与被依赖的关系。

三 Spring Boot核心特性

从本质上来讲,Spring Boot是一个框架中的框架,它专注于框架的整合,让基础的框架能够更好地集成使用。它简化了集成过程中的模板化配置,提供了本应该由开发者自身去实现的Spring Bean配置,从而使开发者能够从繁琐的配置中释放出来,更专注于应用程序的业务逻辑。

Spring Boot具备的特性:

  • SpringApplication:提供一种简便的方式来引导启动Spring应用程序,通过main的方式启动应用。
  • 外部化配置(External Configuration):通过外部化配置的方式,可以让开发者自定义相关配置以使相同的应用运行于相同的环境。
  • Profiles:Spring Profiles可以将配置文件隔离成不同的模块,并且使这些模块中的配置旨在特定的环境中生效。
  • 日志(Logging):SpringBoot完善的日志系统更利于开发者调试和监控应用程序。
  • MVC:Spring Web MVC框架,使得开发者得心应手地搭建Web后端应用。
  • 嵌入式容器(Embedded Containers):支持内置的Tomcat,Jetty和Undertow服务器,使得应用程序通过内嵌的服务器容器一键启动。
  • SQL:提供了使用SQL数据库的广泛支持,从直接通过JDBC(JdbcTemplate)访问数据库到通过对象关系映射(ORM)框架(如Hibernate)访问数据库等等。
  • NoSQL:集成了大量的框架来提供使用NoSQL数据库的技术,支持Redis,MongoDB,Neo4j,Elasticsearch,Solr Cassandra和LDAP等诸多NoSQL数据库,这些NoSQL数据库的使用都可以由Spring Boot提供相关的自动配置实现。
  • 消息系统(Message):提供了对消息系统的广泛支持,包括JMS,RabbitMQ,kafka和WebSocket等。
  • 测试(Testing):提供了一系列实用工具和注释,以帮助开发者测试应用程序。
  • 自动配置(Auto-Configuration):自动配置不仅减少了Spring框架中本该由开发者自主实现Bean相关配置,也使得开发者具备根据自己的业务需要为应用程序定义各种特定Bean的能力。
  • 监控(Monitoring):Spring Boot的监控能够使开发者更好掌握应用程序的运行状态。