hanbingzi / spring3-learn

springboot3、springcloud、java基础

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Spring

项目 介绍
spring-boot-web Spring Boot Web 基础
Spring Boot test
自定义配置文件
多配置文件加载 actuator
spring-boot-jpa Spring Boot Jpa 框架基础
spring-boot-email 1. 复杂邮件类型
2. 发送文本邮件
spring-boot-log 1. 日志打印
2. 自定义操作日志记录注解,日志切面配置
3. 基于 controller package 的日志记录
4. 定义logback-spring.xml配置文件
spring-boot-mybatis mybatis
spring-boot-init 启动加载
1. CommandLineRunner(注解的执行优先级是按value值从小到大顺序)
2. InitializingBean
3. @PostConstruct
spring-boot-async spring boot 异步任务
spring-boot-elasticsearch elasticsearch
spring-boot-lombok Spring Boot lombok,lombok使用实例
spring-boot-event 1. google eventbus 事件总线
2. spring application event 事件
spring-boot-properties 配置文件相关
spring-boot-guava-limit 基于 guava 限流
spring-boot-task 1. 定时任务
2. 指定线程池
spring-boot-websocket 1. 消息推送
2. 聊天室
spring-boot-upload 单文件上传多文件上传、阿里云oss文件上传
spring-batch Spring Batch 轻量级的批量处理框架
spring-boot-mybatis-common 基于mybatis的XMLMapperBuilder机制实现Mybatis通用Mapper
spring-boot-mybatis-common-example 基于mybatis的XMLMapperBuilder机制实现Mybatis通用Mapper使用案例
spring-boot-saas 多租户模式下,数据源切换:采用共享DB,独立Schema的方式进行
spring-boot-webflux webflux函数式编程DEMO
spring-boot-starter 自定义starter
spring-boot-cors 跨域的三种实现方式
spring-boot-upload springboot文件上传、阿里云OSS文件上传
spring-boot-shutdown Springboot停机
spring-boot-idempotent 幂等:
基于数据库保证幂等性 乐观锁
redis实现幂等性
spring-boot-api Springboot通用api接口层模式
validation 接口参数验证
自定义 validator 验证器
API 接口版本控制
统一异常处理
自定义异常处理
统一返回结果
spring-cloud-openfeign 开启日志
通信组件
数据压缩
负载均衡
HTTP Interface将 HTTP 服务,定义成一个包含特定注解标记的方法的 Java 接口
spring-boot-actuator micrometer
grafana
Zipkin
自定义指标
spring-boot-log4j2 log4j2
spring-boot-multitenant 分区(Partitioned)数据:不同租户的数据都在一张表里,通过一个值(tenantId)来区分不同的租户。
分结构(Schema):不同的租户数据放置在相同数据库实例的不同结构(Schema)中。
分数据库(Database):不同租户的数据放置在不同的数据中。
spring-boot-flyway Flyway 数据库版本管理工具
spring-boot-banner 自定义 banner starter 打印相关信息 banner.txt
spring-boot-p6spy 开发使用,不建议生产直接使用

基础

java基础内容

Mybatis

基于mybatis的Provider机制实现Mybatis通用Mapper

基于mybatis的分库分表实现思路:不涉及分布式事务

基于建表语句生成代码

基于数据库生成代码

进阶

保障幂等性的几种方法:数据库+redis

限流算法

限流算法之计数器(固定窗口)算法

限流算法之滑动窗口算法

限流算法之漏桶算法

限流算法之令牌桶算法

缓存

Java本地缓存之Caffine Cache

缓存雪崩

缓存击穿

缓存穿透

布隆过滤器

spring-learn

spring-cloud-loadbalancer简单实例

spring-boot-thymeleaf:springboot整合thymeleaf

spring-boot-rabbitmq:整合rabbitmq

spring-boot-redis-redisson:springboot使用Redisson

spring-boot-elasticsearch:springboot使用elasticsearch

spring-boot-im:Springboot 整合 Netty

业务相关代码

微信公众号对接

微信支付对接

spring-boot

design-singleton:单例模式

  • 懒汉模式
  • 双重锁校验
  • 枚举单例
  • 饿汉模式
  • 类的内部类

spring-boot-redis:redis

  • RedisService简单工具service
  • redis分布式锁:setIfAbsent
  • redis分布式锁:lua脚本

spring-boot-zk:zookeeper

  • 伪分布式配置
  • 分布式锁

spring-boot-api:api层设计

  • 版本标记:@ApiVersion
  • 统一异常处理:GlobalExceptionHandler
  • 参数校验:validation
  • 自定义参数校验:@Amount
  • 接口版本号控制:ApiVersionCondition

spring-boot-rabbitmq

  • 延迟队列
  • 死信队列
  • 广播模式
  • 主题模式
  • 点对点模式

spring-boot-mybatis-common: 通用mappe的一种实现思路

spring-boot-scheduling:定时任务

spring-boot-pk:唯一主键生成方式

  • Snowflake算法
  • UUDI方式
  • 数据库自增
  • mysql sequence

spring-boot-hotaccount:热点账户

提供解决热点账户的几种思路。

spring-cloud

spring-cloud-nacos-config

spring-cloud-nacos-discovery

其他

感谢JetBrains 提供的免费license JetBrains

About

springboot3、springcloud、java基础

License:MIT License


Languages

Language:Java 94.3%Language:FreeMarker 2.6%Language:HTML 1.8%Language:JavaScript 0.7%Language:Lua 0.5%Language:Dockerfile 0.1%