# spring-learn **Repository Path**: asd2015/spring-learn ## Basic Information - **Project Name**: spring-learn - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-14 - **Last Updated**: 2025-11-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Spring | 项目 | 介绍 | | --------------- | ---- | | | | | [spring-boot-aot](./spring-boot-aot) | spring boot 3 AOT(Ahead-Of-Time Compilation)技术 | | [spring-boot-web](./spring-boot-web) | Spring Boot Web 基础
Spring Boot test
自定义配置文件
多配置文件加载 actuator | | [spring-boot-jpa](./spring-boot-jpa) | Spring Boot Jpa 框架基础 | | [spring-boot-email](./spring-boot-email) | 1. 复杂邮件类型
2. 发送文本邮件 | | [spring-boot-log](./spring-boot-log) | 1. 日志打印
2. 自定义操作日志记录注解,日志切面配置
3. 基于 controller package 的日志记录
4. 定义logback-spring.xml配置文件 | | [spring-boot-mybatis](./spring-boot-mybatis) | mybatis | | [spring-boot-init](./spring-boot-init) | 启动加载
1. CommandLineRunner(注解的执行优先级是按value值从小到大顺序)
2. InitializingBean
3. @PostConstruct | | [spring-boot-async](./spring-boot-async) | spring boot 异步任务 | | [spring-boot-elasticsearch](./spring-boot-elasticsearch) | elasticsearch | | [spring-boot-lombok](./spring-boot-lombok) | Spring Boot lombok,lombok使用实例 | | [spring-boot-event](./spring-boot-event) | 1. google eventbus 事件总线
2. spring application event 事件 | | [spring-boot-properties](./spring-boot-properties) | 配置文件相关 | | [spring-boot-guava-limit](./spring-boot-guava-limit) | *基于* guava 限流 | | [spring-boot-task](./spring-boot-task) | 1. 定时任务
2. 指定线程池 | | [spring-boot-websocket](./spring-boot-websocket) | 1. 消息推送
2. 聊天室 | | [spring-boot-upload](./spring-boot-upload) | *单文件上传*、*多文件上传*、阿里云oss文件上传 | | [spring-batch](./spring-batch) | Spring Batch 轻量级的批量处理框架 | | [spring-boot-mybatis-common](./spring-boot-mybatis-common) | 基于mybatis的`XMLMapperBuilder`机制实现Mybatis通用Mapper | | [spring-boot-mybatis-common-example](./spring-boot-mybatis-common-example) | 基于mybatis的`XMLMapperBuilder`机制实现Mybatis通用Mapper使用案例 | | [spring-boot-saas](./spring-boot-saas) | 多租户模式下,数据源切换:采用共享DB,独立Schema的方式进行 | | [spring-boot-webflux](./spring-boot-webflux) | webflux函数式编程DEMO | | [spring-boot-starter](./spring-boot-starter) | 自定义starter | | [spring-boot-cors](./spring-boot-cors) | 跨域的三种实现方式 | | [spring-boot-upload](./spring-boot-upload) | springboot文件上传、阿里云OSS文件上传 | | [spring-boot-shutdown](./spring-boot-shutdown) | Springboot停机 | | [spring-boot-idempotent](./spring-boot-idempotent) | 幂等:
基于数据库保证幂等性 乐观锁
redis实现幂等性 | | [spring-boot-api](./spring-boot-api) | Springboot通用api接口层模式
validation 接口参数验证
自定义 validator 验证器
API 接口版本控制
统一异常处理
自定义异常处理
统一返回结果 | | [spring-cloud-openfeign](./spring-cloud-openfeign) | 开启日志
通信组件
数据压缩
负载均衡
HTTP Interface将 HTTP 服务,定义成一个包含特定注解标记的方法的 Java 接口 | | [spring-boot-actuator](./spring-boot-actuator) | micrometer
grafana
Zipkin
自定义指标 | | [spring-boot-log4j2](./spring-boot-log4j2) | log4j2 | | [spring-boot-multitenant](./spring-boot-multitenant) | **分区(Partitioned)数据**:不同租户的数据都在一张表里,通过一个值(tenantId)来区分不同的租户。
**分结构(Schema)**:不同的租户数据放置在相同数据库实例的不同结构(Schema)中。
**分数据库(Database)**:不同租户的数据放置在不同的数据中。 | | [spring-boot-flyway](./spring-boot-flyway) | Flyway 数据库版本管理工具 | | [spring-boot-banner](./spring-boot-banner) | 自定义 banner starter 打印相关信息 banner.txt | | [spring-boot-p6spy](./spring-boot-p6spy) | 开发使用,不建议生产直接使用 | | [spring-boot-mybatis-flex](./spring-boot-mybatis-flex) | MyBatis-Flex 一个优雅的 MyBatis 增强框架。使用案例 | | [spring-boot-testcontainer](./spring-boot-testcontainer) | Testcontainers 简化了用户创建容器化的方式,只需要引入依赖,再通过配置的方式即可快速创建容器,并注入到SpringBoot上下文对象中。使用简单,方便,高效。 | # 基础 [java基础内容](./doc) # Mybatis [基于mybatis的Provider机制实现Mybatis通用Mapper](./spring-boot-mybatis-provider) [基于mybatis的分库分表实现思路:不涉及分布式事务](./spring-boot-mybatis-sharding) [基于建表语句生成代码](./spring-boot-mybatis-gen) [基于数据库生成代码](./spring-boot-mybatis-daogen) # 进阶 [保障幂等性的几种方法:数据库+redis](./spring-boot-idempotent) ## 限流算法 [限流算法之计数器(固定窗口)算法](./spring-boot-guava-limit/固定窗口算法.md) [限流算法之滑动窗口算法](./spring-boot-guava-limit/滑动窗口计数器算法.md) 限流算法之漏桶算法 [限流算法之令牌桶算法](./spring-boot-guava-limit/令牌桶算法.md) ## 缓存 [Java本地缓存之Caffine Cache](https://github.com/lizhifuabc/spring-learn/tree/main/spring-boot-caffeine) [缓存雪崩](./spring-boot-redis-advanced/缓存雪崩.md) [缓存击穿](./spring-boot-redis-advanced/缓存击穿.md) [缓存穿透](./spring-boot-redis-advanced/缓存穿透.md) [布隆过滤器](./spring-boot-redis-advanced/布隆过滤器.md) # spring-learn [spring-cloud-loadbalancer简单实例](./spring-cloud-loadbalancer) [spring-boot-thymeleaf:springboot整合thymeleaf](./spring-boot-thymeleaf) [spring-boot-rabbitmq:整合rabbitmq](./spring-boot-mq/spring-boot-rabbitmq) [spring-boot-redis-redisson:springboot使用Redisson](./spring-boot-redis-redisson) [spring-boot-elasticsearch:springboot使用elasticsearch](./spring-boot-elasticsearch) [spring-boot-im:Springboot 整合 Netty](./spring-boot-im) # 业务相关代码 [微信公众号对接](./spring-boot-wxmp) [微信支付对接](./spring-boot-payment) # spring-boot [design-singleton](./spring-boot-design/design-singleton):单例模式 - 懒汉模式 - 双重锁校验 - 枚举单例 - 饿汉模式 - 类的内部类 [spring-boot-redis](./spring-boot-redis):redis - RedisService简单工具service - redis分布式锁:setIfAbsent - redis分布式锁:lua脚本 [spring-boot-zk](./spring-boot-zk):zookeeper - 伪分布式配置 - 分布式锁 [spring-boot-api](./spring-boot-api):api层设计 - 版本标记:`@ApiVersion` - 统一异常处理:`GlobalExceptionHandler` - 参数校验:`validation` - 自定义参数校验:`@Amount` - 接口版本号控制:`ApiVersionCondition` [spring-boot-rabbitmq](./spring-boot-mq/spring-boot-rabbitmq) - 延迟队列 - 死信队列 - 广播模式 - 主题模式 - 点对点模式 [spring-boot-mybatis-common](./spring-boot-mybatis-common): 通用mappe的一种实现思路 - 基于Mybatis解析xml文件 - 生成Document、Element,通过XMLMapperBuilder进行解析 - 使用demo:[spring-boot-mybatis-common-example](./spring-boot-mybatis-common-example) [spring-boot-scheduling:定时任务](./spring-boot-scheduling) [spring-boot-pk:唯一主键生成方式](spring-boot-pk) - Snowflake算法 - UUDI方式 - 数据库自增 - mysql sequence [spring-boot-hotaccount:热点账户](./spring-boot-hotaccount) 提供解决热点账户的几种思路。 ## spring-cloud [spring-cloud-nacos-config](./spring-cloud-nacos-config) [spring-cloud-nacos-discovery](./spring-cloud-nacos-discovery) # 其他 感谢[JetBrains](https://jb.gg/OpenSource) 提供的免费license ![JetBrains](./doc/assets/jetbrains-variant-4.svg)