当前位置: 首页 > news >正文

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

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())。

http://www.xdnf.cn/news/348877.html

相关文章:

  • el-table计算表头列宽,不换行显示
  • C++模板笔记
  • 使用DEEPSEEK快速修改QT创建的GUI
  • 【日撸 Java 三百行】Day 6(For语句)
  • Cursor降智找不到文件(Cursor降智)
  • C++漫步结构与平衡的殿堂:AVL树
  • SpringBoot应急知识学习系统开发实现
  • [计算机科学#10]:早期的计算机编程方式
  • 基于php人力劳务招聘系统开发功能需求分析【源码】
  • 千星计划小程序开发方案
  • SpringAI实现AI应用-自定义顾问(Advisor)
  • 基金从入门到荒废-基金的分类
  • #define ccw (0)和#define ccw 0什么区别
  • 数据结构 - 8( AVL 树和红黑树 10000 字详解 )
  • Python序列Day3
  • 【软件设计师:操作系统】5.操作系统基础与进程
  • FPGA图像处理(四)------ 图像裁剪
  • 5月8号.
  • MySQL事务隔离机制与并发控制策略
  • 电子电路原理第十五章(运算放大器)
  • 新手SEO基础优化步骤
  • conda创建一个新环境,指定环境的存储位置,而不是默认值地址
  • 操作系统 : Linux进程信号
  • 【LeetCode 热题 100】二叉树 系列
  • 基于GlusterFS的分布式存储集群部署实战指
  • 硕博士学位论文题目需要注意的几个问题
  • [计算机科学#11]:编程语言简史,从二进制到简约表达的华丽转身,造就原因——“懒”
  • 实现类似AI流式输出效果
  • 美化cmd窗格----添加背景图
  • axes.axis()--控制坐标轴显示