《Spring Cloud微服务架构进阶》——3Spring Cloud的基础:Spring Boot

举报
华章计算机 发表于 2019/06/03 00:58:58 2019/06/03
【摘要】 本书摘自《Spring Cloud微服务架构进阶》——书中的第3章,第3.1节作者是朱荣鑫、张天、黄迪璇。

第3章Spring Cloud的基础:Spring Boot

工欲善其事,必先利其器。在对Spring Cloud各部分组件进行具体介绍之前,我们会对Spring Cloud微服务的基础Spring Boot进行介绍。Spring Boot是Spring一套快速配置开发的脚手架,可以基于Spring Boot快速集成开发单个Spring应用。Spring Cloud是基于Spring Boot实现的云应用开发工具,很大一部分实现依赖于Spring Boot。可以说Spring Boot是整个Spring Cloud微服务架构的服务基础。

本章第一小节对Spring Boot功能和特点进行概述,包括Spring Boot中的核心特性;第二小节将搭建一个Spring Boot项目来快速了解基本开发流程;在第三小节中总结了Spring Boot的配置文件及应用。

3.1 Spring Boot简介

Spring框架功能很强大,但是就算是一个很简单的项目,开发者也需要进行大量的配置工作,因此在Spring 4.0之后出现了Spring Boot框架,它的作用很简单,就是帮助开发者自动配置Spring的相关依赖。Spring Boot是Pivotal团队于2013年推出的全新项目,主要用来简化Spring开发框架的开发、配置、调试和部署工作,同时在项目内集成了大量易于使用且实用的基础框架。Spring Boot使用了特殊的方式来进行初始化配置,这使得开发者不需要额外定义样板化的配置。

1. Spring Boot 2.0

2018年3月初,Spring Boot 2.0 正式发布。该版本历经了17个月,是继4年前Spring Boot 1.0 之后的第一个主要版本,也是第一个正式支持Spring Framework 5.0的发行版本。

Spring Boot 2.0相对之前的1.x发生了以下的变化:

不再支持JDK1.6和1.7,JDK最低要求1.8+,并支持1.9。

支持Spring webflux/webflux.fn响应式的Web编程。

提供Spring Data Cassandra、MongoDB、Couchbase和Redis的响应式自动配置及Starter POM。

支持嵌入式的Netty。

TLS配置和HTTP/2的支持:Tomcat、Reactor Netty、Undertow和Jetty。

全新的体系结构,支持Spring MVC、WebFlux和Jersey。

Spring Boot 2针对Quartz调度器提供了支持。可以加入spring-boot-starter-quartz的Starter依赖来启用。

极大简化了安全配置。

需要注意的是,许多配置属性在Spring Boot 2.0中已经重命名或被删除,为了方便从1.x升级,Spring Boot发布了一个新的spring-boot-properties-migrator模块。只要将其作为依赖添加到项目中,它不仅会分析应用程序的环境并在启动时打印诊断信息,还会在运行阶段为项目临时将属性迁移至新的配置方式。

2. Spring Boot与Spring Cloud

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

3. Spring Boot核心特性

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

Spring Boot具备以下特性:

SpringApplication:提供一种简便的方式来引导启动Spring应用程序,通过main的方式启动应用。

外部化配置(External Configuration):通过外部化配置的方式,可以让开发者自定义相关配置以使相同的应用运行于不同的环境中。

Profiles:Spring Profiles可以将配置文件隔离成不同的模块,并且使这些模块中的配置只在特定的环境中生效。

日志(Logging):Spring Boot完善的日志系统更利于开发者调试和监控应用程序。

MVC:Spring Web MVC框架,使得开发者得心应手地搭建Web后端应用。

嵌入式容器(Embedded Containers):支持内置的Tomcat、Jetty和Undertow服务器,使得应用程序通过内嵌的服务器容器一键启动。

SQL:提供了使用SQL数据库的广泛支持,从直接通过JDBC(JdbcTemplate)访问数据库到通过对象关系映射框架(如Hibernate)访问数据库等等。

NoSQL:集成了大量的框架来提供使用NoSQL数据库的技术,支持Redis、MongoDB、Neo4j、Elasticsearch、Solr Cassandra、Couchbase和LDAP等诸多NoSQL数据库,这些NoSQL数据库的使用都可以由Spring Boot提供相关的自动配置实现。

消息系统(Message):提供了对消息系统的广泛支持,包括JMS、RabbitMQ、Kafka和WebSocket等。

测试(Testing):提供了一系列实用工具和注解,以帮助开发者测试应用程序。

自动配置(Auto-Configuration):自动配置不仅减少了Spring框架中本该由开发者自主实现Bean相关配置,也使得开发者具备根据自己的业务需要为应用程序定义各种特定Bean的能力。

监控(Monitoring):Spring Boot的监控能够使开发者更好地掌控应用程序的运行状态。

在下面Spring Boot的构建中,将对其中的部分特性进行较为详细的讲解,对于其他未涉及的特性,读者们可以通过阅读官方文档或者其他资料进行了解。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。