概述
Spring Boot可以让开发者能够更加快速的构建Spring应用。主要提供了如下功能:
-
创建独立可执行的Spring应用。通过将应用程序打包为jar,就可以通过java -jar来执行应用程序。
-
内嵌Tomcat, Jetty等WEB服务器,而不需要开发者打包war。
-
提供starter简化maven依赖关系配置。
将Spring Boot用于微服务开发,可以极大的简化开发者配置和部署。CSE提供了完善的的服务治理能力、良好的跨语言特性和高效的异步通信能力,通过使用CSE,可以快速启用各种满足商业运维需要的功能。基于Spring Boot 2.0的IoT应用集成和使用CSE实践提供了一个实际的例子,描述了Spring Boot中集成CSE框架带来的变化,以及演示 了部分开箱即用的治理功能。CSE同时支持集成Spring Boot 1和Spring Boot 2,在前面的章节中,主要介绍Spring Boot 1,两者集成的原理和步骤基本是一致的,在最后的章节,会描述使用Spring Boot 2的差异。
开发者通常会以如下几种方式使用Spring Boot:
-
JAVA应用方式:引入spring-boot-starter,开发普通JAVA应用。该应用不会启动WEB服务器。
-
Web开发方式:引入spring-boot-starter-web,开发Web应用。该应用会包含一个内嵌的Tomcat或者Jetty服务器,并且使用The Spring Web MVC framework(简称Spring MVC)开发REST接口。
在两种情况下,都可以集成CSE,原理图如下:
- JAVA应用方式
这种集成方式相对简单,相当于直接将CSE通过Spring Boot应用拉起,不涉及任何改造和变化。
- Web开发方式
该集成方式的本质是将Spring MVC的DispatcherServlet替换为CSE的RestServlet。
CSE提供的组件说明
针对Spring Boot、Spring Cloud,提供了如下几个组件:
- spring-boot-starter-configuration
接入配置中心。当需要在Spring Boot、Spring Cloud应用中,使用配置中心作为动态配置管理工具的时候,需要依赖。
- spring-boot-starter-registry
接入服务中心。当需要在Spring Boot、Spring Cloud应用中,使用服务中心作为服务注册、发现管理工具的时候,需要依赖。
- spring-boot-starter-discovery
适配Spring Cloud的DiscoveryClient接口。当在Spring Cloud中使用@EnableDiscoveryClient时,需要依赖。
- spring-boot-starter-provider
在Spring Boot中通过@EnableServiceComb启用CSE的核心功能。这个功能可以用于“JAVA应用方式”和”Web开发方式“。 在”Web开发方式”中,通过spring.main.web-environment=false禁用了Web环境。因此,这个模块主要是解决”JAVA应用方式“的问题。
- spring-boot-starter-transport
在Spring Boot中通过@EnableServiceComb启用CSE的核心功能,并启用CSE的RestServlet。用于” Web开发方式“。
开发过程中会使用到的组件是spring-boot-starter-provider和spring-boot-starter-transport,详细使用场景会在后面的章节说明。
JAVA应用方式开发步骤
使用JAVA方式集成,为Spring Boot应用增加了一个高效的HTTP服务器和REST开发框架。这种方式集成非常简单。只需要在项目中引入相关依赖,并且使用@EnableServiceComb标签即可。
项目代码示例参考: