为什么要用SpringBoot?
Spring作为J2EE的轻量级代替品,让我们无需开发重量级的Enterprise JavaBean(EJB),通过依赖注入和面向切面编程,使用简单的Java对象(POJO)即可实现EJB的功能。
虽然Spring的组件代码是轻量级的,但它的配置却是重量级的。即使后来Spring引入了基于注解的组件扫描和基于Java的配置,让它看上去简洁不少,但Spring还是需要不少配置。除此之外,项目的依赖管理也很麻烦,我们无法确保各个版本的依赖都能兼容。
SpringBoot是为了解决Spring的上述问题而产生的。
SpringBoot从本质上来说就是Spring,它通过了一些自己的特性帮助我们简化了Spring应用程序的开发。主要有以下三个核心特性:
- 自动配置:对于很多Spring应用程序常见的应用功能,SpringBoot能自动提供相关配置,集成功能开发者仅需很少的配置。
- 起步依赖:告诉SpringBoot需要什么功能,它就能引入对应的库,无需考虑该功能依赖库的版本问题。
- Actuator:可以深入了解SpringBoot应用程序内部情况,比如创建了哪些Bean、自动配置的决策、应用程序的状态信息等。
使用Maven构建SpringBoot项目
SpringBoot项目可以使用Maven进行构建。
首先我们需要继承spring-boot-starter-parent
这个父依赖,父依赖可以控制所有SpringBoot官方起步依赖的版本,接下来当我们使用官方起步依赖时,就不用指定版本号了。我们还需要使用SpringBoot的插件,该插件主要用于将应用打包为可执行Jar。
1 |
|
在使用起步依赖。当我们使用SpringBoot需要整合Web相关功能时,只需在pom.xml
中添加一个起步依赖即可。
起步依赖将spring的多个依赖整合在一起,让开发者不必再手动添加许多其它依赖。
如果是Spring项目的话,我们需要添加很多依赖,还需要考虑各个依赖版本的兼容性问题,是个相当麻烦的事情。
1 | <dependency> |
SpringBoot Actuator
Spring Boot Actuator 是 Spring Boot 框架中的一个核心模块,主要用于增强应用程序的监控和管理能力。这个模块为基于 Spring Boot 构建的应用程序提供了丰富的生产级别的特性。
Actuator提供了大概20个端点,常用端点路径及描述如下:
路径 | 请求方式 | 描述 |
---|---|---|
/beans | GET | 描述应用程序上下文里全部的Bean,以及它们之间关系 |
/conditions | GET | 描述自动配置报告,记录哪些自动配置生效了,哪些没生效 |
/env | GET | 获取全部环境属性 |
/env/{name} | GET | 根据名称获取特定的环境属性 |
/mappings | GET | 描述全部的URI路径和控制器或过滤器的映射关系 |
/configprops | GET | 描述配置属性(包含默认值)如何注入Bean |
/metrics | GET | 获取应用程序度量指标,比如JVM和进程信息 |
/metrics/{name} | GET | 获取指定名称的应用程序度量值 |
loggers | GET | 查看应用程序中的日志级别 |
/threaddump | GET | 获取线程活动的快照 |
/health | GET | 报告应用程序的健康指标,这些值由HealthIndicator的实现类提供 |
/shutdown | POST | 关闭应用程序 |
/info | GET | 获取应用程序的定制信息,这些信息由info打头的属性提供 |
Actuator的根端点的访问路径为:http://localhost:8088/actuator
上面的端点访问可以将表格中的路径字段追加在根端点后面。