1. 核心作用:
此类 (JwtProperties) 作为一个集中的“配置信息持有者”,专门用来存储项目中与 JWT(JSON Web Token,一种用于身份验证的令牌)相关的配置参数。
2. 关键注解说明:
- @Component:- 含义:将这个 Java 类标记为一个“组件”,并交由 Spring IoC 容器管理。
- 作用:Spring 会自动创建这个类的实例(对象/Bean),我们可以在项目的其他地方方便地注入和使用这个实例,而不需要手动 new它。
 
- @ConfigurationProperties(prefix = "sky.jwt"):- 含义:声明这是一个“配置属性类”。
- prefix = "sky.jwt":指定了配置文件(如- application.properties或- application.yml)中相关配置项的“前缀”。
- 作用:Spring Boot 会自动读取配置文件中所有以 sky.jwt.开头的配置项,并将它们的值赋给这个类中对应名称的属性。- 例如,配置文件中的 sky.jwt.admin-secret-key = myAdminKey会自动赋值给类中的adminSecretKey属性(Spring Boot 支持短横线命名到驼峰命名的自动转换)。
 
- 例如,配置文件中的 
 
- @Data(Lombok):- 含义:Lombok 库提供的注解。
- 作用:自动为类中的所有字段(属性)生成标准的 getter、setter方法、toString()、equals()和hashCode()方法,以及一个接收所有final字段的构造函数。极大简化了样板代码的书写。
 
3. JwtProperties 类中的属性示例及其用途:
Java
// @Component
// @ConfigurationProperties(prefix = "sky.jwt")
// @Data
public class JwtProperties {
    // 管理端配置
    private String adminSecretKey; // 管理员JWT签名密钥 (字符串,用于加密和验证令牌)
    private long adminTtl;         // 管理员JWT有效期 (长整型,通常为毫秒)
    private String adminTokenName; // 管理员JWT在请求中传递时使用的名称 (例如:"Admin-Token", "Authorization")
    // 用户端配置
    private String userSecretKey;  // 用户JWT签名密钥
    private long userTtl;          // 用户JWT有效期
    private String userTokenName;  // 用户JWT在请求中传递时使用的名称
}
4. 工作流程小结:
Spring 启动时 -> 扫描到 @Component,创建 JwtProperties 实例 -> 看到 @ConfigurationProperties,读取 application.properties 中 sky.jwt. 开头的配置 -> 将配置值通过 @Data 提供的 setter 方法(或直接赋值)填充到 JwtProperties 实例的对应属性中 -> 项目中其他地方可以通过注入这个 JwtProperties 实例来获取这些配置值(jwtProperties.getAdminSecretKey())。