SpringBoot常见starter

Catalogue
  1. 1. spring-boot-starter
  2. 2. spring-boot-starter-parent
  3. 3. spring-boot-starter-web
  4. 4. spring-boot-starter-test
  5. 5. spring-boot-starter-actuator
  6. 6. 各Spring-Boot-Starters介绍
  • 自定义starter
  • 简化配置、开箱即用、快速集成.

    举个例子。redis-starter,会根据luttuce、redisson、jedis 的变化实例化不同的客户端链接。实现方式是使用了@Conditional系列注解

    Redis的三个框架:Jedis,Redisson,Lettuce

    spring-boot的各个starter. 是spring-boot场景启动器,后面跟的单词就是场景,比如说后面跟web,就是导入web场景的所有依赖。

    1. spring-boot-starter

    Spring Boot的核心启动器,包含了自动配置、日志和YAML

    2. spring-boot-starter-parent

    控制版本信息

    3. spring-boot-starter-web

    web的场景,自动帮我们引入了web模块开发需要的相关jar包

    4. spring-boot-starter-test

    springboot程序测试依赖,如果是自动创建项目默认添加

    5. spring-boot-starter-actuator

    用于支持 SpringBoot 应用的监控。

    Actuator 这个词即使翻译过来也不是很容易理解(比如翻译成“制动器;传动装置;执行机构”等)。

    为了能够感知应用的运行状态,我们通常会:

    1
    2
    3
    4
    5
    1. 设置一些监控指标并采集分析
    2. 监控指标的采集需要在应用内部设置相应的监控点
    3. 这类监控点一般只是读取状态数据,我们通常称它们为 Sensor,即中文一般称为“传感器”的东西。
    4. 应用的运行状态数据通过 Sensors 采集上来之后,我们通常会有专门的系统对这些数据进行分析和判断。
    5. 一旦某个指标数据超出了预定的阈值,这往往意味着应用的运行状态在这个指标上出现了“不健康”的现象,我们希望对这个指标进行调整,而为了能够执行调整,我们需要预先在应用内部设置对应的执行调整逻辑的控制器。

    比如,直接关闭的开关,或者可以执行微调甚至像刹车一样直接快速拉低某个指标值的装置,这些控制器就称为 Actuator。虽然我们日常天天在说“监控,监控”,但实际上“监”跟“控”是两个概念,Sensor 更多服务于“监”的场景,而 Actuator 则服务于“控”的场景。

    SpringBoot的Endpoint主要是用来监控应用服务的运行状况,并集成在Mvc中提供查看接口。

    spring-boot-starter-actuator 自动配置模块默认提供了很多 endpoint,虽然自动配置模块名为 spring-boot-starter-actuator,但实际上这些 endpoint 可以按照“监”和“控”划分为两类:

    Sensor 类 endpoints 和 Actuator 类 endpoints.

    Sensor:感知器,传感器 类型。 Actuator:执行器 类型

    1
    2
    3
    4
    5
    6
    7
    ----- Sensor
    autoconfig - 提供一份 SpringBoot 的自动配置报告,告诉我们哪些自动配置模块生效了,以及哪些没有生效,原因是什么。
    beans - 给出当前应用的容器中所有 bean 的信息。
    configprops - 对现有容器中的 ConfigurationProperties 提供的信息进行“消毒”处理后给出汇总信息。
    info - 提供当前 SpringBoot 应用的任意信息,我们可以通过 Environment 或者 application.properties 等形式提供以 info. 为前缀的任何配置项,然后 info 这个 endpoint 就会将这些配置项的值作为信息的一部分展示出来
    metrics - 当前 SprinBoot 应用的 metrics 信息。
    trace - 当前 SpringBoot 应用的 trace 信息。
    1
    2
    3
    ----- Actuator
    shutdown - 用于关闭当前 SpringBoot 应用的 endpoint。
    dump - 用于执行线程的 dump 操作。

    参考: spring-boot-starter-actuator与应用监控,Spring Boot提供的监控和管理接口-2.0

    endpoints 属于 spring-boot-starter-actuator 提供的主要功能之一.除此之外,spring-boot-starter-actuator 还提供了更多针对应用监控的支持和实现方案。

    上面主要介绍了spring-boot-starter-actuator。

    6. 各Spring-Boot-Starters介绍

    Spring Boot application starters

    问题: 以上starter其实已经很完备了,为什么都要自定义。

    简化配置、开箱即用、快速集成、灵活装配使用。

    自定义starter

    Spring Boot入门教程(三十一): 自定义Starter

    最详细的自定义Spring Boot Starter开发教程

    SpringBoot使用AutoConfiguration自定义Starter