Java JWT 配置类 (JwtProperties) 学习笔记

发布于:2025-05-10 ⋅ 阅读:(13) ⋅ 点赞:(0)

1. 核心作用:

此类 (JwtProperties) 作为一个集中的“配置信息持有者”,专门用来存储项目中与 JWT(JSON Web Token,一种用于身份验证的令牌)相关的配置参数。

2. 关键注解说明:

  • @Component:

    • 含义:将这个 Java 类标记为一个“组件”,并交由 Spring IoC 容器管理。
    • 作用:Spring 会自动创建这个类的实例(对象/Bean),我们可以在项目的其他地方方便地注入和使用这个实例,而不需要手动 new 它。
  • @ConfigurationProperties(prefix = "sky.jwt"):

    • 含义:声明这是一个“配置属性类”。
    • prefix = "sky.jwt":指定了配置文件(如 application.propertiesapplication.yml)中相关配置项的“前缀”。
    • 作用:Spring Boot 会自动读取配置文件中所有以 sky.jwt. 开头的配置项,并将它们的值赋给这个类中对应名称的属性。
      • 例如,配置文件中的 sky.jwt.admin-secret-key = myAdminKey 会自动赋值给类中的 adminSecretKey 属性(Spring Boot 支持短横线命名到驼峰命名的自动转换)。
  • @Data (Lombok):

    • 含义:Lombok 库提供的注解。
    • 作用:自动为类中的所有字段(属性)生成标准的 gettersetter 方法、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())。


网站公告

今日签到

点亮在社区的每一天
去签到