coder-common-thin-backend/CLAUDE.md
Leo 3fd0f04f43 feat: 完善Sa-Token插件架构实现
- 添加Sa-Token权限认证接口实现
- 完善插件化配置架构
- 修复StpInterface缺失导致的启动失败问题
- 实现用户角色和权限获取逻辑
2025-07-05 14:41:05 +08:00

3.9 KiB
Raw Blame History

CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

常用命令

构建和运行

# 编译整个项目
mvn clean compile

# 打包项目
mvn clean package

# 运行应用程序
cd coder-common-thin-web
mvn spring-boot:run

# 或者运行打包后的jar
java -jar coder-common-thin-web/target/coder-common-thin-web-1.0.0.jar

测试

# 运行所有测试
mvn test

# 运行单个模块测试
mvn test -pl coder-common-thin-web

数据库

# 数据库初始化SQL位于
# sql/coder-common-thin.sql

项目架构概览

这是一个基于Spring Boot 3.5.0的多模块企业级开发框架,采用插件化架构设计。

模块结构

  • coder-common-thin-web: Web启动模块应用程序入口点
  • coder-common-thin-common: 公共工具模块,包含大量工具类、配置类和拦截器
  • coder-common-thin-model: 数据模型模块包含POJO、BO、VO和数据验证
  • coder-common-thin-mybatisplus: 数据访问层模块MyBatis Plus配置和Mapper
  • coder-common-thin-modules: 业务模块容器
  • coder-common-thin-plugins: 插件模块,包含各种功能插件

插件化架构

项目采用@Enable注解实现功能模块的可插拔配置

  • @EnableCoderSaToken: Sa-Token认证插件
  • @EnableCoderEasyExcel: Excel处理插件
  • @EnableCoderLimit: 限流插件
  • @EnableCoderRepeatSubmit: 防重提交插件
  • @EnableCoderDesensitize: 数据脱敏插件

技术栈

  • 核心框架: Spring Boot 3.5.0 + Java 17
  • 数据库: MySQL 9.3.0 + MyBatis Plus 3.5.12
  • 缓存: RedisSpring Data Redis
  • 安全认证: Sa-Token 1.43.0
  • 工具库: Hutool 5.8.38, Fastjson2 2.0.57, Guava 33.4.8
  • 业务功能: EasyExcel 4.0.3, Easy-Captcha 1.6.2

数据层设计

  • 主键策略: 雪花算法ASSIGN_ID
  • 逻辑删除: 0-已删除, 1-未删除
  • 多数据源: 支持master/slave数据源动态切换
  • SQL监控: 集成P6spy进行SQL性能监控

配置文件

  • 主配置: application.yml
  • 环境配置: application-dev.yml
  • 数据库配置: 支持MySQL主从配置
  • Redis配置: 使用Jackson2序列化支持连接池

开发指南

添加新功能插件

  1. coder-common-thin-plugins下创建新模块
  2. 创建@Enable注解用于启用插件
  3. 实现必要的配置类和工具类
  4. 在主启动类上使用@Enable注解启用

数据访问层开发

  1. 实体类放在coder-common-thin-model/domain/pojo
  2. Mapper接口放在coder-common-thin-mybatisplus/mapper
  3. XML映射文件放在resources/mapper
  4. 使用@DS("dataSourceName")注解切换数据源

工具类使用

项目提供了丰富的工具类,位于coder-common-thin-common/utils

  • 缓存工具: RedisUtil, LocalCacheUtil
  • 日期工具: DateUtil, CalendarUtil
  • 文件工具: FileUtil, UploadUtil, ZipUtil
  • 字符串工具: StringUtil, ConvertUtil
  • IP工具: IpUtil, IpAddressUtil
  • JSON工具: JsonUtil
  • 加密工具: MD5Util, CoderPasswordUtil

配置说明

  • 端口: 默认18099可通过port环境变量覆盖
  • 文件路径: 在application-dev.yml中配置coder.filePath
  • 数据库连接: 在application-dev.yml中配置数据源信息
  • Redis配置: 在application-dev.yml中配置Redis连接信息

日志配置

  • 日志文件: logback-spring.xml
  • 日志级别: 可通过环境变量调整
  • 操作日志: 自动记录,支持异步处理和定时清理

注意事项

  • 项目基于Java 17确保开发环境版本匹配
  • 使用中文注释,保持代码风格一致
  • 新增功能遵循插件化设计模式
  • 数据库操作优先使用MyBatis Plus提供的方法
  • 安全认证统一使用Sa-Token避免重复造轮子
  • 工具类使用前先检查是否已有现成实现