# spring-boot-csdn **Repository Path**: perzpy/spring-boot-csdn ## Basic Information - **Project Name**: spring-boot-csdn - **Description**: springboot复习+实践 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 137 - **Created**: 2026-01-12 - **Last Updated**: 2026-01-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Spring Boot 教程项目 本项目是一个Spring Boot学习教程,包含了Spring Boot开发中常用的技术点和最佳实践。每个模块都是独立的Spring Boot应用,可以直接运行学习。 ## 项目结构 ``` spring-boot-csdn/ ├── 01-spring-boot-auth-filter # 认证过滤器模块 ├── 02-poi-easyExcel # Excel处理模块 ├── 03-spring-boot-aop # AOP切面编程模块 ├── 04-spring-boot-validator # 参数校验模块 ├── 05-spring-boot-jasypt # 加密配置模块 ├── 06-customize-starter # 自定义Starter模块 ├── 07-mybatis-mapper # MyBatis Mapper模块 ├── 08-spring-boot-fastdfs # FastDFS文件上传模块 ├── 09-spring-boot-interface-crypto # 接口加解密模块 └── LICENSE # 许可证文件 ``` ## 模块说明 ### 01. 认证过滤器模块 (auth-filter) 实现基于Redis的用户认证机制,包括: - **Filter层**:使用`LoginFilter`进行请求过滤 - **Interceptor层**:使用`LoginInterceptor`进行拦截处理 - **ArgumentResolver**:通过`@LoginUser`注解注入当前登录用户 - **Aspect切面**:使用`@LoginValidator`注解实现登录验证 - **ThreadLocal**:使用`LoginUserThread`存储当前线程的登录用户 ### 02. Excel处理模块 (poi-easyExcel) 基于Apache POI的Excel读写操作,包含: - **EventUserModel**:使用事件模式解析大型Excel文件 - **SimpleRead/Write**:简单模式读写Excel - **BigRead/Write**:大文件读写支持 - SXSSFWorkbook:处理超大型Excel文件 ### 03. AOP切面编程模块 (aop) Spring Boot AOP的各种切入点表达式演示: - **Execution**:方法执行切入点 - **Within**:类型匹配切入点 - **Args**:参数匹配切入点 - **@Annotation**:注解匹配切入点 - **@target/@within**:注解匹配切入点 - **Bean**:Bean名称匹配切入点 ### 04. 参数校验模块 (validator) 使用Spring Validation进行参数校验: - **基础校验**:@NotBlank、@NotNull等 - **分组校验**:通过@Validated(UpdateUser.class)实现不同场景不同校验规则 - **自定义校验**:@PasswordPatten自定义密码校验规则 - **嵌套校验**:@Valid实现对象嵌套校验 - **全局异常处理**:统一处理校验异常 ### 05. 加密配置模块 (jasypt) 使用jasypt进行配置文件加密: - **自定义属性检测器**:识别加密属性 - **自定义属性解析器**:解密配置值 - **自定义过滤器**:控制加密属性范围 ### 06. 自定义Starter模块 (customize-starter) 演示如何开发Spring Boot Starter: - **log-collection-starter**:日志收集Starter - @MyLog注解实现方法调用日志记录 - 自动配置类`LogAutoConfiguration` - 通过spring.factories实现自动装配 - **sql-query-starter**:SQL查询Starter - 提供通用的SQL查询工具类`SqlQuery` ### 07. MyBatis Mapper模块 (mybatis-mapper) 使用通用Mapper简化MyBatis开发: - **通用Mapper**:继承Mapper接口实现单表CRUD - **分页插件**:集成PageHelper实现分页查询 - **自动映射**:使用@Table和@Id注解 - **命名策略**:配置NameStyle为camelhumpAndLowercase ### 08. FastDFS文件上传模块 (fastdfs) 基于FastDFS的分布式文件存储: - **文件上传**:支持单文件和多文件上传 - **图片处理**:支持生成缩略图 - **文件下载**:支持多种下载方式 - **文件删除**:支持单文件和批量删除 - **文件类型检测**:通过魔数检测文件真实类型 - **全局异常处理**:统一处理文件操作异常 ### 09. 接口加解密模块 (interface-crypto) 实现接口数据的加解密: - **请求解密**:使用`@DecryptionAnnotation`解密请求数据 - **响应加密**:使用`@EncryptionAnnotation`加密响应数据 - **AES加密**:支持AES/ECB/PKCS5Padding - **输入流缓存**:缓存HTTP请求输入流支持多次读取 - **统一异常处理**:处理加解密过程中的异常 ## 技术栈 - **Spring Boot**:2.x版本 - **Redis**:缓存和会话存储 - **Apache POI**:Excel处理 - **MyBatis**:持久层框架 - **FastDFS**:分布式文件存储 - **Jasypt**:配置文件加密 - **Hutool**:工具类库 - **Lombok**:简化代码 ## 运行方式 每个模块都是独立的Spring Boot应用,可以单独运行: ```bash # 进入模块目录 cd 01-spring-boot-auth-filter # 编译运行 mvn spring-boot:run ``` ## 环境要求 - JDK 1.8+ - Maven 3.6+ - Redis 5.x+ - FastDFS 5.x+ ## License 本项目采用 [MIT License](LICENSE) 开源协议。 ## 学习建议 1. **按顺序学习**:建议从01到09依次学习 2. **结合源码**:每个模块都有完整的代码实现,建议结合源码学习 3. **实践应用**:将学习到的技术应用到实际项目中 4. **扩展思考**:尝试对每个模块进行功能扩展,加深理解 ## 贡献指南 如果你发现任何问题或有改进建议,欢迎提交Issue或Pull Request。