一、什么是配置类?
配置类就是用来创建和管理 Bean 的类。,提前配置好一些 Bean,方便在应用中使用。直接@Autowired 注入即可。
在 Spring Boot 中,相当于以前的 XML 配置文件。
🟦 @Configuration —— 配置类核心注解
✔ 作用
- 标注在类上,告诉 Spring:这是一个配置类。
- 类内部的方法可以使用
@Bean注册 Bean。 - 被扫描后,配置类本身就是一个 Spring Bean。
2025/12/2大约 2 分钟
配置类就是用来创建和管理 Bean 的类。,提前配置好一些 Bean,方便在应用中使用。直接@Autowired 注入即可。
在 Spring Boot 中,相当于以前的 XML 配置文件。
@Bean 注册 Bean。| 注解 | 作用位置 | 主要用途 | 数据来源 |
|---|---|---|---|
@PathVariable |
方法参数 | 获取 URL 路径中的参数 | URL 路径 |
@RequestParam |
方法参数 | 获取 URL 查询参数 | URL ? 后面 |
@RequestBody |
方法参数 | 获取请求体(如 JSON) | 请求体 |
@RequestHeader |
方法参数 | 获取请求头信息 | HTTP Header |
@CookieValue |
方法参数 | 获取 Cookie 值 | Cookie |
@ModelAttribute |
方法参数 | 绑定表单数据 | 请求参数/体 |
Knife4j是一款集Swagger 2及OpenAPI 3为一体的API文档增强工具,在Spring Boot 3中,由于Spring Boot 3仅支持OpenAPI 3规范,并且要求JDK版本至少为17,因此配置方式与旧版本有所不同。
| 注解用途 | Spring Boot 2.x (Swagger 2 注解) | Spring Boot 3.x (OpenAPI 3 注解) | 说明 |
|---|---|---|---|
| 描述Controller类 | @Api(tags = "用户接口") |
@Tag(name = "用户接口") |
用于对接口进行分组。注意:OpenAPI 3 的 @Tag 不能替换 Swagger 2 的 @Api,因为它们作用不同。 |
| 描述接口方法 | @ApiOperation("获取用户") |
@Operation(summary = "获取用户", description = "...") |
描述接口的具体信息。 |
| 描述响应 | @ApiResponse(code = 200, message = "成功") |
@ApiResponse(responseCode = "200", description = "成功") |
注意属性名从 code 变为了 responseCode。 |
| 描述请求参数 | @ApiParam("用户ID") |
@Parameter(description = "用户ID") |
用于描述 @RequestParam, @PathVariable 等参数。 |
| 描述模型(实体类) | @ApiModel("用户实体") |
@Schema(description = "用户实体") |
在类上使用。 |
| 描述模型属性 | @ApiModelProperty("用户名") |
@Schema(description = "用户名") |
<!-- 数据库相关-->
<!-- mybatis-plus-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>${mybatis-plus}</version>
</dependency>
<!-- Druid连接池-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>${druid}</version>
</dependency>
<!-- mysql驱动-->
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<version>${mysql-connector-j}</version>
</dependency>
<!-- Lombok (可选,简化代码) -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombook}</version>
</dependency>
<!-- properties属性加入版本信息-->
<properties>
<lombook>1.18.36</lombook>
<mybatis-plus>3.5.5</mybatis-plus>
<druid>1.2.19</druid>
<mysql-connector-j>8.0.33</mysql-connector-j>
</properties>
在Spring Boot中,属性配置类的使用是一种最佳实践,下面我来详细解释为什么要使用@ConfigurationProperties而不是直接使用@Value("${}")。
@Component
@ConfigurationProperties(prefix = "sky.jwt")
@Data
public class JwtProperties {
/**
* 管理端员工生成jwt令牌相关配置
*/
private String adminSecretKey;
private long adminTtl;
private String adminTokenName;
/**
* 用户端微信用户生成jwt令牌相关配置
*/
private String userSecretKey;
private long userTtl;
private String userTokenName;
}