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");
}
}
三、自定义配置
-
通过属性文件外置配置
- 创建application.properties的文件
#修改服务端口为8000
server.port=8000
- 创建application.yml文件
server:
port: 8000
- 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文件的属性优先级高
四、测试
- tomcat端口被占用时,将端口改为0,启用随机端口
- https://www.seleniumhq.org 使用selenium进行测试
![image]()
![image]()
七、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://spring.io/guides Spring 官方 Guides
本文来自博客园,作者:暴躁牛马,转载请注明原文链接:https://chuna2.787528.xyz/listen2life/p/19214718



浙公网安备 33010602011771号