- 博客(21)
- 资源 (40)
- 收藏
- 关注
原创 基于Spring Boot与Micrometer的系统参数监控指南
本文介绍了如何通过Micrometer为SpringBoot应用构建监控系统。Micrometer作为供应商中立的指标门面,支持多种监控后端(如Prometheus)。文章详细讲解了集成步骤:添加依赖、配置端点、选择监控系统,并演示了计数器、计量仪、计时器等核心指标的使用方法。同时提供了HTTP请求监控、自定义过滤器和最佳实践建议,帮助开发者构建高效可靠的监控方案,确保应用稳定性。
2025-09-15 16:14:17
854
原创 构建实时消息应用:Spring Boot + Vue 与 WebSocket 的有机融合
本文介绍了如何整合SpringBoot和Vue实现实时双向通信,通过Spring WebSocket+STOMP+SockJS构建高效可靠的通信机制。后端配置WebSocket消息代理并创建消息处理控制器,前端使用Vue连接WebSocket服务并实现消息收发功能。最后讲解了如何通过Nginx部署前后端分离项目,代理静态资源、API请求和WebSocket连接。文章提供了一个完整的聊天室示例,涵盖从开发到部署的全流程,帮助开发者快速掌握实时通信技术的实现方法。
2025-09-11 12:27:35
639
1
原创 Spring Web 异步响应实战:从 CompletableFuture 到 ResponseBodyEmitter 的全链路优化
本文对比分析了Spring中两种异步响应机制:CompletableFuture适用于一次性异步任务(如数据库查询、远程调用),通过@Async注解实现非阻塞处理;ResponseBodyEmitter则适合流式推送场景(如任务进度、日志流),支持分块传输数据。文章详细介绍了两种方式的实现代码、Nginx配置及前端接收方法,并提供了场景选择建议:一次性结果用CompletableFuture,实时推送用ResponseBodyEmitter。同时强调了连接管理和线程池配置的重要性。
2025-09-09 15:38:52
835
2
原创 性能飙升!Spring异步流式响应终极指南:ResponseBodyEmitter实战与架构思考
异步流式响应是解决传统同步响应瓶颈的有效方案。文章介绍了Spring中ResponseBodyEmitter的核心原理,通过HTTP分块传输编码实现数据的渐进式发送。通过一个"实时数据报表生成"的示例,演示了如何在后端实现Emitter,包括线程管理、异常处理和超时设置等关键点。同时提供了前端使用FetchAPI和EventSource两种消费流式响应的方法。最后给出了架构建议,包括资源管理、错误处理和监控等重要实践,帮助开发者构建高效、可扩展的异步流式应用。
2025-09-08 10:44:27
780
原创 会话管理巅峰对决:Spring Web中Cookie-Session、JWT、Spring Session + Redis深度秘籍
特性/方案传统Cookie-SessionJWT状态管理有状态(服务器端)无状态(客户端Token)有状态(外部化存储)扩展性差(需粘性会话或复制)极佳(天生分布式)极佳(共享存储)性能高(内存读取)中(需验证签名)中高(网络IO,Redis极快)安全性较好(服务器端存储)需注意Token盗用与废止问题较好(服务器端逻辑,存储可控)适用场景简单单体应用分布式API、移动端、SSOSpring分布式Web应用集群代码侵入性无(内置)中高(需自行处理Token生成验证)低(配置即用)
2025-09-05 11:12:07
1105
1
原创 Java轻量级状态机在支付流程中的设计与实现
在支付系统中,交易状态管理是核心业务逻辑之一。一个清晰、健壮的状态机设计能够确保支付流程的可靠性和可维护性。本文将介绍基于Spring Boot环境的轻量级状态机设计,实现支付交易的状态管理。清晰的状态转换规则:通过配置化的方式定义状态转换规则,易于理解和维护松耦合设计:状态管理器与业务逻辑分离,便于测试和扩展事件驱动架构:通过Spring事件机制实现状态变更的监听和处理事务安全:使用Spring的@Transactional确保状态变更的原子性分布式锁支持:防止并发状态修改导致的数据不一致。
2025-09-02 10:25:18
1698
原创 性能屠夫还是稳定王者?SpringBoot项目Log4j2与Logback异步日志终极对决
本文对比了SpringBoot中Log4j2与Logback的异步日志性能。Log4j2基于无锁环形队列设计,在高并发下吞吐量可达Logback的10倍,延迟更低且GC压力更小;Logback则配置简单,与SpringBoot生态集成更好。Log4j2适合高并发核心系统,Logback适用于常规业务场景。文章提供了两者的完整配置示例,并指出异步日志可能存在的日志丢失风险。建议根据业务场景选择:追求极致性能选Log4j2,注重易用性选Logback。
2025-08-29 09:50:29
658
原创 针对不同使用场景,Redis的Value应该如何序列化,优缺点如何,进来看
本文介绍了SpringBoot中Redis的四种Value序列化方案:1)Jackson2JsonRedisSerializer适合跨语言、可读性要求高的场景;2)GenericJackson2JsonRedisSerializer支持多态类型,兼容性更好;3)JdkSerializationRedisSerializer适合纯Java环境;4)StringRedisSerializer性能最优但需手动序列化。建议根据场景选择,推荐GenericJackson2JsonRedisSerializer作为通用
2025-08-28 15:42:01
351
原创 MyBatis Plus 与 MyBatis的PK:Spring Boot 下的详解、选型与实战
MyBatis 是一款优秀的半自动化的 ORM 框架,它封装了 JDBC,开发者可以通过 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs 映射成数据库中的记录。它的核心优势在于灵活的 SQL,开发者可以精确地控制每一条 SQL 语句。MyBatis Plus(简称 MP)是一个MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,旨在简化开发、提高效率。
2025-08-27 14:49:04
827
原创 去掉WebSocket味,如何基于 Spring的WebFlux实现SSE功能,也就是服务端主动消息推送,轻松加愉快
本文介绍了如何使用SpringBoot WebFlux实现SSE(Server-Sent Events)功能。SSE是一种基于HTTP的服务器推送技术,适用于实时通知、监控仪表盘等场景。文章详细讲解了SSE原理、与WebSocket的区别,并提供了SpringBoot后端实现(包括基础流、自定义事件流和使用ServerSentEvent工具类)和Vue.js前端实现的完整代码示例。通过结合WebFlux的Flux响应式流和SSE协议,可以轻松构建高效的服务器推送功能。
2025-08-27 09:29:56
1185
原创 Java并发容器ArrayBlockingQueue与LinkedBlockingQueue对比PK
这些示例展示了和添加元素put()(阻塞)、offer()(非阻塞)、add()(抛异常)获取元素take()(阻塞)、poll()(非阻塞)、remove()(抛异常)检查元素peek()element()批量操作drainTo()addAll()队列状态size()isEmpty()高级用法:迭代器遍历、批量处理在 Spring Boot 环境中,我们可以将这些队列配置为 Bean,然后在服务类中注入使用,实现生产者和消费者模式。通过合理选择队列类型和操作方法,可以构建出高效、可靠的并发应用程序。
2025-08-26 15:10:15
1063
原创 抛弃Hystrix,在Spring Boot 项目中如何集成和应用 Resilience4j 的断路器(Circuit Breaker)功能
摘要:本文介绍了Resilience4j断路器在微服务架构中的应用,包括防止服务雪崩、实现优雅降级和自动恢复三大场景。详细说明了SpringBoot项目中的配置方法,提供了YAML配置示例和核心代码实现。通过@CircuitBreaker注解和fallback方法,演示了如何在订单服务调用中实现断路器保护。最后介绍了测试方法和Actuator监控端点,帮助开发者掌握这一提升系统弹性的重要技术。
2025-08-26 10:22:39
901
原创 SpringBoot + RabbitMQ + MongoDB + Redis:高性能高并发高可用的半导体生产工厂数据处理落地实践
通过五大层次(接入、缓冲、处理、存储、应用)实现职责分离与水平扩展。
2025-08-25 17:10:36
2237
原创 Jvm内部事件分发机制,Spring Event和Guava Eventbus以及GreenRobot Eventbus怎么选怎么用
本文对比了三种主流Java事件驱动框架:Spring Event、Guava EventBus和GreenRobot EventBus。Spring Event深度集成Spring生态,适合企业级应用,支持事务绑定等高级特性;Guava EventBus轻量简单,适合非Spring项目进程内解耦;GreenRobot EventBus专为Android优化,提供粘性事件和线程模式支持。选择建议:Spring应用选Spring Event,普通Java项目用Guava EventBus,Android开发首选
2025-08-25 09:20:17
776
原创 java中,synchronized 关键字与 ReentrantLock 重入锁的区别以及应用场景,注意事项
在 Java 并发编程中,关键字和都是用于实现线程同步的重要机制,但它们在实现方式、功能和性能特征上有所不同。
2025-08-22 14:01:19
581
原创 手把手,Rabbitmq3.12,镜像队列如何配置,Spring Boot如何连接镜像队列集群
RabbitMQ镜像队列集群配置指南:需要至少3个节点(推荐奇数节点),确保时间同步、网络通畅和相同的Erlang cookie。配置步骤包括安装相同版本RabbitMQ、设置主机名解析、同步cookie、组建集群(通过rabbitmqctl命令)及设置镜像策略(推荐ha-two策略)。SpringBoot连接需配置集群地址并实现重试机制,提供生产者和消费者代码示例。常见问题包括节点加入失败、同步问题和消息丢失,需检查网络、cookie一致性和启用确认机制。最后强调根据生产环境调整参数并进行充分测试。
2025-08-22 10:31:06
548
原创 Mysql8 主从复制关键配置语句
本文介绍了MySQL主从复制的配置步骤。主库配置包括修改my.cnf文件设置server-id和binlog格式,创建专用复制用户并调整认证插件为mysql_native_password。从库通过CHANGE MASTER命令指定主库信息,并展示了主从同步状态检查方法。当同步出现故障时,可通过查询performance_schema.replication_applier_status_by_worker表查看具体错误信息。文中还提供了主从库版本查询、用户权限查看等辅助命令,并附有配置截图说明。
2025-08-21 16:11:22
160
原创 Redisson 原理、用途及Spring Boot集成指南
Redisson是一个基于Redis的Java分布式框架,提供分布式锁、集合、原子操作等能力。其核心原理包括:基于Netty的非阻塞IO、响应式编程、分布式数据结构实现。SpringBoot集成需添加依赖,配置RedissonClient,支持单机/集群模式。典型应用场景包括分布式锁(RLock)、分布式Map(RMap)、原子操作(RAtomicLong)、发布订阅(RTopic)及SpringCache集成。通过合理配置超时和重试策略,可构建稳定高效的分布式系统。
2025-08-21 14:32:54
378
原创 RSA非对称加密怎么实现,Java语言轻松搞定
本文介绍了非对称加密的核心概念及其Java实现,重点演示了RSA算法的密钥生成、数据加密解密、数字签名和验证流程。代码示例展示了如何使用Java加密体系(JCA)实现2048位RSA密钥对的生成、PKCS1Padding填充模式的加密/解密,以及SHA256withRSA签名算法。典型应用场景包括安全数据传输、数字签名防篡改和登录令牌验证。文章还给出了密钥长度(建议3072位)、加密数据长度限制、密钥存储安全等注意事项,并建议结合AES加密大数据、使用HSM保护私钥、定期轮换密钥等安全增强措施。
2025-08-21 10:09:07
516
原创 如何基于Redis的ZSet数据结构设计一个通用的,简单的,可靠的延迟消息队列,以RedisTemplate为例
摘要:基于Redis实现延迟队列的方案,使用ZSet存储待处理消息(score为触发时间),List存储就绪消息。通过定时任务将ZSet中到期的消息转移到List,消费者从List中阻塞获取消息。该方案简单可靠,仅依赖Redis基础数据结构,确保消息不丢失且高效处理,适用于订单超时等场景。核心流程分为生产者添加消息、定时任务转移消息和消费者处理消息三个阶段,通过Redis的ZSet和List特性实现延迟队列功能。
2025-08-20 15:44:47
589
原创 2015-4-25华为成研所实习生招聘面试回顾
博主一直对华为还是挺追崇,比较情有独钟,华为的企业文化,研发能力还有产品口碑,都是相当领先的。大概是在3月份时候,看到华为招聘的微信公众号上面发的消息,说开始实习生招聘。然后秉着试试水,积累经验顺便找找感觉的保守心态,大概3月25号网申了软件开发岗,因为博主对于软件开发还是挺有兴趣的。
2015-04-26 00:20:39
2651
简易安卓相机Camera应用,可聚焦、丰富的设置选项,Eclipse工程源码
2014-05-19
ArcMenu——Github上找到的一个超赞的Menu开源控件
2015-04-29
vue+element-ui的web前端开发脚手架项目
2020-08-01
人脸识别经典算法PCA以及2DPCA完美matlab版
2015-06-04
基于百度地图SDK做的轻量级的地图应用程序(源码)
2015-05-14
自己编写的GitHub上的SlindingMenu开源控件用法实例(工程文件)
2015-04-17
ViewPager类的简单释列,用于滑动浏览条目
2014-10-22
基于百度地图SDK做的轻量级的地图应用程序1.2(源码)
2015-05-20
springboot+dubbo+nacos+ribbon 微服务示例项目
2022-11-01
Dockerfile制作基于Ubuntu的java应用镜像
2022-09-21
ORL人脸识别数据库全套
2015-06-17
2DPCA最新改进算法
2015-07-31
Android support library新控件简单使用示例-Android studio
2015-12-29
易读易用的vue-element 前后端分离项目脚手架
2021-11-24
基于springboot和rabbitmq的消息收发demo
2020-01-20
elastic-job-lite-console-3.0.0.M1-SNAPSHOT.rar
2020-05-18
mybatis-demo-git.rar
2020-01-20
基于springboot的dubbo微服务应用demo
2020-01-21
Android support library新控件的简单使用示例(Android Studio)
2015-12-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅