springboot实战阅读笔记

一、入门

springboot核心

1、自动配置:常用功能自动提供相关配置,例如tomcat,test,校验等

2、起步依赖:告诉spb需要什么功能,就可以引入对应的库,引入的库中不会出现版本不兼容的问题

例如spring-boot-starter-web 以spring-boot-starter起头后面跟 起步依赖的功能web,test等

3、命令行界面 CLI (command-line-interface)

4、Actuator在运行时检测应用程序内部情况,包括

1)、Spring程序上下文里配置的Bean
2)、springboot自动配置做的策略
3)、应用程序取到的环境变量、系统属性、配置属性和命令行参数
4)、应用程序里线程的当前状态
5)、应用程序最近处理过的http请求的追踪情况
6)、各种和内存用量、垃圾回收、Web请求以及数据源用量相关的指标

二、开发第一个应用程序

条件化配置

  • 配置是Spring Framework的核心元素,必须要有东西告诉spring如何运行程序。在springboot中有一个spring-boot-autoconfigure的jar文件,包含了很多配置类。每个配置都在应用程序的classPath中。
  • 条件化配置允许配置存在与应用程序中,但在满足某些特定条件之前都忽略这个配置。
  • 在spring里可以很方便的编写你自己的条件,所要做的就是实现Condition接口,例:
点击查看代码
//核心接口
@FunctionalInterface
public interface Condition {
    boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata);
}
//基本使用示例
// 1. 自定义条件类
public class DatabaseTypeCondition implements Condition {
    @Override
    public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
        // 检查环境变量或系统属性,当数据库类型是mysql时创建
        String dbType = context.getEnvironment().getProperty("app.database.type");
        return "mysql".equalsIgnoreCase(dbType);
    }
}

public class DevProfileCondition implements Condition {
    @Override
    public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
        // 当环境是dev时创建
        return context.getEnvironment().acceptsProfiles("dev");
    }
}

三、自定义配置

  • 通过属性文件外置配置

  1. 创建application.properties的文件
#修改服务端口为8000
server.port=8000
  1. 创建application.yml文件
server:
  port: 8000
  1. SpringBoot 能从多种属性源获得属性,如
    1). 命令行参数
    2). java:comp/env里的JNDI属性
    3). JVM系统属性
    4). 操作系统环境变量
    5). 随机生成的带random.*前缀的属性(在设置其他属性时,可以引用他们比如${random.long})
    6). 应用程序以外的appliction.properties或application.yml文件
    7). 打包在应用程序内的application.properties或者application.yml文件
    8). 通过@PrepertySource标注的属性源
    9). 默认属性
    这个列表按照优先级排序从高到低
    application.properties和application.yml文件能放在一下四个位置 优先级从高到低
    1). 外置,在相对于应用程序运行目录的/config子目录里
    2). 外置,在应用程序运行的目录里
    3). 内置,在congfig包内
    4). 内置,在Classpath根目录
    如果在同一优先级位置同时有application.properties和application.yml,那yaml文件的属性优先级高

四、测试

七、Actuator

HTTP方法 路 径 描 述
GET /autoconfig 提供了一份自动配置报告,记录哪些自动配置条件通过了,哪些没通过
GET /configprops 描述配置属性(包含默认值)如何注入bean
GET /beans 描述应用程序上下文里所有的Bean,以及他们的关系
GET /dump 获取线程活动的快照
GET /env 获取全部环境属性
GET /env/ 根据名称获取特定的环境属性值
GET /health 报告应用程序的健康指标,这些值由HealthIndicator的实现类提供
GET /info 获取应用程序的定制信息,这些信息由info打头的属性提供
GET /mappings 描述全部的URI路径,以及它们和控制器(包含Actuator端点)的映射关系
GET /metrics 报告各种应用程序度量信息,比如内存用量和HTTP请求计数
GET /metrics/ 报告指定名称的应用程序度量值
POST /shutdown 关闭应用程序,要求endpoints.shutdown.enabled设置为true
GET /trace 提供基本的HTTP请求跟踪信息(时间戳、HTTP头等)

使用actuator时,在maven中引入起步依赖,以上端点可以分为三类:配置端点、度量端点和其他端点。

1. /beans 返回一个json文档,描述上下文里每个bean的情况

  • bean:Spring应用程序上下文中的Bean名称或ID
  • resource:.class文件的物理位置,通常是一个URL,指向构建出的JAR文件。这会随着应用程序的构建和运行方式发生变化。
  • dependencies:当前Bean注入的Bean ID列表。
  • scope:Bean的作用域(通常是单例,这也是默认作用域)。
  • type:Bean的java类型。

2. /autoconfig

  • positiveMatches 成功条件
  • negativeMatches 失败条件

https://start.spring.io/ 初始化

https://spring.io/guides Spring 官方 Guides

posted @ 2025-11-23 11:56  暴躁牛马  阅读(9)  评论(0)    收藏  举报