# bulk-java-scene **Repository Path**: bulkall/bulk-java-scene ## Basic Information - **Project Name**: bulk-java-scene - **Description**: 《Java业务场景实战》提供常见业务场景的最佳解决方案以及优化方案 1. 常见业务场景的企业级解决方案 2. 设计模式在实际业务开发中的应用 3. 真实企业级线上问题排查与调优 4. Java8 在实际项目开发中常用的操作 5. Spring Boot 与常见框架、中间件的集成 6. 提升工作效率的 IDEA 插件推荐以及使用 - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 16 - **Forks**: 1 - **Created**: 2024-06-12 - **Last Updated**: 2025-07-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Java业务场景实战 #### 介绍 《Java业务场景实战》提供常见业务场景的最佳解决方案以及优化方案 1. 常见业务场景的企业级解决方案 2. 设计模式在实际业务开发中的应用 3. 真实企业级线上问题排查与调优 4. Java8 在实际项目开发中常用的操作 5. Spring Boot 与常见框架、中间件的集成 6. 提升工作效率的 IDEA 插件推荐以及使用 ## 本项目中的场景 case 介绍 ### 定制场景 case | 项目 | 描述 | |-----------------------------------------------|----------------------------------| | [大文件上传](./scene-customized/big-file-upload) | 基于boot+vue实现,包含分片上传、断点续传、秒传等功能演示 | | [根据ip转城市地址](./scene-customized/ip-to-address) | 获取http请求ip,转换成城市地址 | | [获取节假日](./scene-customized/holidays-case) | 获取一年中那几天是放假的,展示剩余节假日倒计时 | | [一键生成模版项目工程](./archetype/archetype-boot-simple) | 一键生成模版工程 - 基于 maven archetype,springboot项目 | ### 通用场景 case | 项目 | 描述 | |------------------------------------------------------------|-------------------------------------------------------------------------------------| | [幂等场景演示](./scene-general/idempotent-case) | 基于 redis 实现幂等,含自定义注解实现幂等,基于token实现幂等 | | [MDC+Logkback+TTL链路追踪演示](./scene-general/log-trace-mdc) | Slf4j MDC + Logback + TTL (阿里 TransmittableThreadLocal) 自定义实现链路追踪能力 | | [Logback 日志脱敏](./scene-general/log-sensitive-masking) | Springboot + Logback 演示日志脱敏,Converter、Layout两种方式 | | [限流场景演示](./scene-general/ratelimit-case) | Springboot + Redis 演示多种分布式限流方式,自定义注解。支持固定窗口、滑动窗口、漏桶、令牌桶。基于lua脚本,以及基于 redisson 等多种方式 | | [自定义注解记录接口访问日志](./scene-general/log-interface-save) | 一个注解可以实现记录项目中任意接口的访问数据(入参、反参、耗时等)到数据库或者其他地方 | | [Logback 多环境配置](./scene-general/logback-multi-env) | Logback 演示多环境配置-如何在不容的开发环境配置不同的日志输出 | | [优雅重试演示](./scene-general/retry-case) | spring-retry 优雅重试, 基于注解实现重试,以及编程式实现重试 | | [自定义注解实现数据脱敏](./scene-general/interface-sensitive-masking) | Springboot + Jackson 自定义注解实现接口响应数据的脱敏 | | [接口数据自动加解密](./scene-general/interface-encrypt) | Springboot 基于 RequestBodyAdvice 和 ResponseBodyAdvice 这两个拓展点 + 自定义注解,实现入参自动解密,反参自动加密,支持多种加密方式以自定义加密方式 | | [动态调整日志等级](./scene-general/log-dynamic) | 可以在不停机的情况下,动态调整日志等级。 基于多种方式实现 : spring admin实现、基于LoggerContext、基于SpringBoot 提供的 LoggingSystem | | [打印完整SQL](./scene-general/log-print-sql) | 基于 mybatis 拦截器,实现完整的sql日志打印。演示多种SQL日志打印方式的不同 | | [mybatis落库敏感数据自动加解密](./scene-general/db-auto-crypto) | 基于 mybatis TypeHandler 实现,敏感信息,如手机号、身份证号等的数据落库自动加密,查询自动解密 | | [分布式id生成case](./scene-general/id-generation) | 多种实现: 号段模式(mysql 乐观锁+双缓存)、redis 自定义生成、雪花算法、UUID | | [延迟执行场景case](./scene-general/delay-case) | 多种实现: 本地延迟任务、redis zset、轮询扫表、MQ延迟队列等 | ### 设计模式在实际业务开发中的应用 ### Java8 在实际项目开发中常用的操作 ### Java 开发中的一些小坑 | 项目 | 描述 | |-------------------------------------------------------------------------------------|---------------------------------------------------| | [SimpleDateFormat的小坑](java-pit/src/main/java/top/bulk/pit/SimpleDateFormatPit.java) | 在使用 SimpleDateFormat 的时候,如果格式化的格式传入的不当,会引起时间错乱的问题 | | [BigDecimalP的小坑](java-pit/src/main/java/top/bulk/pit/BigDecimalPitTest.java) | BigDecimal 转换为字符串的坑 | ----
🚀 星光不问赶路人,时光不负有心人,加油怀揣梦想的少年 ✨

关注公众号 散装java 欢迎加群一起交流学习🤓。

散装java