"Java开发实战:MyStore项目CH02用户模块实现与知识点总结"

需积分: 5 0 下载量 195 浏览量 更新于2023-12-26 收藏 780KB DOCX 举报
本文将重点总结铁哥学Java中MyStore项目 CH02 用户模块的实现。用户模块包含用户登录、检查相关字段是否可用、重置密码和注册功能。在实现过程中学习了逻辑主键和物理主键的区别,通用部分的设计,常量的独立存储,postman的使用,参数的校验(@RequestParam,@RequestBody),@NotNull和@NotEmpty的区别,全局异常捕获与处理(使用SpringBoot的切面,前置建议来实现),LocalDateTime的使用,StringUtils的使用,自动生成持久层(@Autowired和Mapper),密码的MD5加密,token的生成和本地缓存(CaffeineCache,GooleGuava),主键的自动递增在Java中的设置,以及DTO和VO的使用。 第一部分讨论了用户模块的功能,包括登录、注册、获取用户信息、修改用户信息、退出登录和找回密码功能。会话跟踪方面,对传统的 Http Session 和 JWT(JSON Web Token) 进行了比较,并表示后续需要深入了解和处理。 第二部分对表的设计进行了讨论。在设计用户表时,username 是物理主键(即业务主键),id 是逻辑主键。解释了逻辑主键与物理主键的概念,以及为什么需要使用逻辑主键。业务主键和逻辑主键的区别在于,业务主键是数据库表中包含的具有业务逻辑含义的字段,而逻辑主键则是与当前表中逻辑信息无关的字段作为主键。逻辑主键的生成方式包括uuid和自增,其中自增是应用最广泛的方式。逻辑主键的使用成功地避免了主键与数据表关联耦合的问题。与业务主键不同,一旦数据发生更改,相关的所有信息都需要进行修改,而逻辑主键则能够避免这种情况。 在本文中,铁哥学Java中MyStore项目 CH02 用户模块的实现作为主要内容,对用户模块的功能进行了总结,并对表的设计进行了深入讨论,并介绍了在实现过程中学习到的知识点。