第二章 微服务构建:Spring Boot
快速入门
项目构建与解析
系统及工具版本要求
- Java 7及以上版本
- Spring Framework 4.2.7及以上版本
- Maven 3.2及以上版本/Gradle1.12及以上版本
构建Maven项目
- 通过官方 Spring Initializr工具来产生基础项目
- 访问 http://start.sring.io/,该网站提供了以Maven或Gradle构建Spring Boot项目的功能
- 选择构建工具Maven、Spring Boot 版本选择1.3.7,因为要实现RESTful API,所以可以添加Web依赖
- 单机Generate Project按钮下载项目压缩包
- 解压项目包,并用IDE以maven项目导入,编译工具选择IDEA
实现RESTful API
在Spring Boot中创建一个RESTful API实现代码和Spring MVC应用一样,只是不需要想Spring MVC那样先做很多配置,直接开始编写Controller内容
@RestController public class HelloController { @RequestMapping("/hello") public String index(){ return "Hello World"; } }
可以直接启动,访问页面http://localhost:8080/hello,我们可以看到返回了预期结果: Hello World
配置详解
配置文件
Spring Boot的默认配置文件位置为src/main/resource/application.properties中,除了传统的properties文件之外,还支持现在被广泛推荐使用的YAML文件
YAML采用类似大纲的缩进形式来表示
environments: dev: url:http://dev.bar.com name:Developer Setup prod: url:http://foo.bar.com name:Developer Setup
此外配置文件中还支持自定义参数,随机数,命令行参数,多环境配置,加载顺序等功能
监控与管理
在应用中增加spring-boot-starter-actuator模块功能能实现监控与管理,在pom中新增spring-boot-starter-actuator的依赖,重新启动在控制台上会显示一批端点定义
原生端点
原生端点分为以下三大类
- 应用配置类:获取应用程序中加载的应用配置、环境变量、自动化配置报告等于Spring Boot应用密切相关的配置类信息
- /autoconfig:获取应用的自动化配置报告
- /beans:获取应用上下文创建的所有Bean
- /configprops:获取应用中配置的属性信息报告
- /env:获取应用所有可用的环境属性报告
- /mappings:返回所有Spring MVC的控制器映射关系报告
- /info:返回一些应用自定义的信息
- 度量指标类:获取应用程序运行过程中用于监控的度量指标,比如内存信息、线程池信息、HTTP请求统计等
- /metrics:返回当前应用的各类重要度量指标,比如内存信息、线程信息、垃圾回收信息等
- /health:获取应用的各类健康指标信息
- /dump:暴露程序运行中的线程信息
- /trace:返回基本的HTTP跟踪信息
- 操作控制类:提供了对应用的关闭等操作类功能
- /shutdown:关闭应用
不积跬步,无以至千里;不积小流,无以成江海