- 博客(983)
- 收藏
- 关注
原创 Spring Security 初识:从零创建第一个受保护的应用
<think>我们根据要求生成文章摘要,不超过150字。内容涵盖:创建Spring Boot项目,引入Security依赖后自动获得登录保护,默认用户/密码,理解过滤器链和约定大于配置。摘要需简洁。</think>摘要:通过Spring Initializr创建含Spring Security的项目,启动后自动生成默认登录页和随机密码,使用user登录可访问受保护接口。本文演示了零配置的安全集成,解析了默认过滤器链和“约定大于配置”的核心思想,为后续自定义安全配置奠定基础。
2026-09-04 16:42:38
86
原创 Kafka 生产者深度解析:发送流程、分区策略与可靠性机制精讲
<think>我们根据要求,需要生成≤150字的文章摘要。内容基于用户提供的关于Kafka生产者的长文。摘要需简洁概括核心内容。用户要求“根据以下内容”,所以摘要应涵盖生产者架构、发送流程、分区、确认、批量、幂等等要点,但需精炼在150字内。注意字数限制,中文字符计数。我们需输出摘要文本。 构思摘要:介绍Kafka生产者核心机制,包括异步发送流程、分区策略、acks、重试与幂等、批量与压缩等,并强调回调线程模型。需浓缩。 控制字数。粗略写:本文剖析Kafka生产者核心机制,涵盖整体架构(KafkaProdu
2026-09-04 16:34:44
277
原创 Kafka 快速入门:环境搭建、部署配置与第一个 Java 程序
<think>我们只需要根据给定的内容生成摘要,不超过150字。内容是关于Kafka快速入门,包括安装、部署(ZooKeeper和KRaft模式)、命令行工具和Java示例。摘要需概括主要步骤和要点。注意字数限制。</think>本文介绍了Apache Kafka的快速入门,涵盖环境准备、下载安装、单机部署(ZooKeeper传统模式与KRaft推荐模式)、三节点集群配置,以及常用命令行工具(主题管理、生产消费)。通过实操步骤,帮助初学者快速搭建Kafka环境并理解核心概念。
2026-09-04 11:49:57
158
原创 Kafka 基础概念速览:消息、主题、分区与消费者组
<think>我们根据要求,需要根据给定的内容生成≤150字的文章摘要。内容是关于Kafka基础概念的介绍,包括消息、批次、主题、分区、生产者、消费者等,并附有Java示例。摘要应该简洁概括核心要点。注意字数限制。我们将提取关键点:Kafka是分布式消息系统,核心概念包括消息(键值时间戳)、批次、主题分区(保证分区内有序、可扩展)、生产者和消费者(拉取模型),以及示例展示。摘要需在150字内。 我们可写:本文以通俗语言介绍Kafka核心概念:消息(键、值、时间戳)、批次提升吞吐,主题与分区实现并行与局部有序
2026-09-04 11:43:36
279
原创 Kafka 技术学习大纲:从入门到精通
<think>我们根据要求生成摘要。摘要需基于给定内容,不超过150字。内容是关于Kafka学习大纲的,包括目录、引言、章节概述等。应提炼核心:系统化Kafka学习路径,从概念到实战,涵盖存储、运维、高级特性等。摘要需简洁。计算字数。</think>本文提供系统化Kafka学习大纲,涵盖基础概念、环境搭建、生产者/消费者、存储副本、集群运维、高级特性及实战项目,并对比Kafka与Pulsar、RocketMQ,推荐学习资源,助力循序渐进构建完整知识体系。
2026-09-04 11:39:39
233
原创 Kafka 核心架构深度解析:从 Broker 到副本机制
<think>好的,用户要求根据提供的文章内容生成一篇不超过150字的摘要。看了一遍这篇文章,内容详尽,核心是讲Kafka的完整知识体系,从架构到核心组件到高可用机制再到性能优化。 摘要需要提炼重点,同时必须控制在150字以内。文章的主要脉络是:先总览Kafka整体架构,然后深入Produer、Consumer、Broker等核心组件,接着讲副本机制、ISR高可用、日志存储、控制器与KRaft等高级主题,最后落到消息投递语义和性能调优。摘要是面向读者概括文章价值的,用简洁的语言覆盖这些核心模块即可。 结构上
2026-09-04 09:44:50
378
原创 Zookeeper 核心基石:ZAB 原子广播协议原理与作用深度解析
<think>我们根据内容生成摘要,要求≤150字。内容介绍ZAB协议,包括定义、核心流程、机制、作用等。摘要应概括主要点:ZAB是Zookeeper一致性核心,采用主备模式,通过两阶段提交和ZXID保证顺序,崩溃恢复选举新Leader并同步数据,支持Quorum机制,保证高可用和强一致性。字数限制。</think>ZAB协议是Zookeeper保证数据一致性的核心算法,采用主备模式,通过两阶段提交和ZXID机制实现事务顺序一致,崩溃时依据ZXID选举新Leader并同步数据,确保高可用与强一致性。
2026-09-04 09:40:54
410
原创 Redis 布隆过滤器:从使用场景到原理剖析
<think>我们根据要求,需要根据给定内容生成≤150字的文章摘要。用户要求“根据以下内容,生成≤150字的文章摘要”。需要从提供的长文中提炼要点,控制字数。 内容主要讲缓存穿透问题及布隆过滤器原理、使用场景、核心原理、参数选择、计数布隆过滤器等。摘要需涵盖核心内容:布隆过滤器解决缓存穿透,高效判断元素是否存在,可能误判但不会漏判,使用位数组和多个哈希函数,用于URL去重等场景,以及计数变体支持删除。 控制在150字内(中文)。需要简洁。计算字数。草稿: “本文针对缓存穿透等海量判重场景,介绍布隆过滤器:
2026-09-03 11:57:04
301
原创 第三章 Spring Boot 整合 Netty:实现登录与私聊功能
<think>我们根据内容生成摘要,要求少于150字。需要提炼关键要点:Spring Boot整合Netty实现WebSocket(实际是类似TCP长连接,基于Netty而非WebSocket?文章说的是WebSocket服务?内容主要是Netty服务端+自定义协议,没有提到WebSocket,但开头说实时消息推送,可能是借用。我们客观概括)。 要点: 使用Spring Boot与Netty集成 实现简易即时通讯(登录、私聊) 包括环境准备、依赖 消息协议定义与JSON序列化 Netty服务端启动类配置 用
2026-09-03 10:15:25
83
原创 第三章 Netty 结合 SpringBoot 实现高性能聊天业务实战
<think>我们只需要总结摘要。提供摘要应该简明扼要,涵盖主要主题:用Netty+SpringBoot搭建高性能聊天系统,包括架构设计、服务端实现、消息协议、心跳机制等。限制150字以内。</think>本文介绍基于Netty与SpringBoot的高性能聊天系统搭建:剖析HTTP轮询与WebSocket在高并发下的局限,阐述Netty异步事件驱动的优势;设计单机Netty服务端与SpringBoot业务层结合的架构,并详述服务端启动、核心消息处理器(用户连接管理、消息分发)、统一消息协议及心跳机制等关键
2026-09-03 10:12:02
116
原创 第三章 Netty 实战:从零实现一个高性能聊天业务
/ 心跳// 登录请求// 登录响应// 私聊消息// 群聊消息// 系统通知为了区分 TCP 流中的消息边界,我们采用「长度域 + 消息体」的帧格式:前 4 个字节表示消息体长度,随后是 JSON 字节数组。@Override// 写入长度// 写入消息体@Override// 不足 4 字节,无法读取长度,直接返回等待更多数据return;// 标记当前读指针// 长度非法,关闭连接return;// 数据不足,重置读指针并等待。
2026-09-02 18:03:38
137
原创 RabbitMQ 从入门到实战:消息队列核心原理与最佳实践
RabbitMQ 是一个基于 AMQP(Advanced Message Queuing Protocol,高级消息队列协议)的开源消息代理软件。它使用 Erlang 语言编写,天生具备高并发、低延迟和良好的集群支持能力。生产者(Producer)将消息交给邮局,交换机(Exchange)和队列(Queue)负责路由和暂存,消费者(Consumer)则从队列中取走消息进行处理。生产者和消费者之间无需直接通信,实现了时间上和空间上的完全解耦。
2026-09-02 17:59:40
335
原创 Spring Cloud Ribbon 负载均衡实战:从入门到原理
如果内置策略不满足需求,我们可以自定义负载均衡策略。只需要实现IRule@Override// 自定义选择逻辑,例如始终选择第一个实例@Bean本文从零开始,完整演示了如何使用 Spring Cloud Ribbon 实现客户端负载均衡。我们首先搭建了服务提供者和服务消费者,然后通过注解让具备负载均衡能力,最后深入剖析了 Ribbon 的核心组件和工作原理。
2026-08-31 16:05:37
220
原创 Spring Cloud 服务注册与发现:原理与实战
服务注册与发现是微服务架构的基石。通过注册中心,服务提供者自动上报实例信息,服务消费者动态获取实例列表并配合负载均衡完成调用,从而实现了服务间的松耦合与高可用。Spring Cloud 结合 Nacos 提供了一套开箱即用的解决方案,让开发者可以快速落地微服务架构。
2026-08-31 14:20:56
117
原创 Spring Cloud OpenFeign 实战指南:从入门到微服务调用
OpenFeign 是一个声明式的 Web 服务客户端,它让编写 Web 服务客户端变得更加简单。使用 Feign 时,你只需要定义一个接口并加上注解,就可以完成对远程服务的调用,而无需手动拼接 URL、处理 HTTP 请求细节。Spring Cloud OpenFeign 作为微服务间通信的利器,以其声明式、简洁、易集成的特点,大幅提升了开发效率。通过本文的学习,你已经掌握了 OpenFeign 的核心用法、高级特性和常见问题的解决方案。
2026-08-31 14:18:15
91
原创 Spring Cloud Gateway 从入门到核心功能原理解析
<think>我们只需要根据提供的内容生成一个少于等于150字的文章摘要。内容是关于Spring Cloud Gateway的教程,包括痛点、核心概念、环境准备、快速入门、断言和过滤器等。摘要应简明扼要,涵盖主要点。不超过150字。用中文。</think>Spring Cloud Gateway是微服务架构的统一入口,解决服务地址分散、重复逻辑等痛点。本文从零讲解其核心概念(路由、断言、过滤器),通过配置实现快速路由转发,并详解常用断言与过滤器实战,包括自定义全局鉴权过滤器,帮助读者掌握入门及核心原理。
2026-08-31 11:44:49
635
原创 Spring Cloud 学习技术路线指南:从入门到微服务实战
打好 Java、Spring Boot 基础。理解微服务核心概念。掌握 Netflix 经典组件,理解微服务思想。转向 Spring Cloud Alibaba 生态,贴近国内生产实践。学习官方 Gateway、Config 等组件。通过实战项目串联所有知识点。微服务架构没有银弹,Spring Cloud 也只是工具集。真正重要的是理解分布式系统的设计思想,并在实践中不断积累经验。希望这份路线图能帮助你少走弯路,顺利踏上微服务开发之路。
2026-08-31 11:39:47
307
原创 SpringBoot 整合 JPA:从入门到精通
实体映射:掌握@Entity@Table@Column等核心注解;Repository 层:利用派生查询与@Query覆盖绝大多数查询场景;事务管理:理解的传播行为与回滚机制;关联映射:掌握一对多、多对一关系及抓取策略;性能优化:通过JOIN FETCH和批量操作规避常见性能陷阱。JPA 的学习曲线虽然略陡,但一旦掌握其设计思想,就能大幅提升开发效率。建议读者在本地动手实践本文的每个示例,并结合官方文档深入理解底层原理,逐步从「会用」走向「精通」。
2026-08-31 11:16:09
213
原创 MyBatis 整合 EasyExcel 实现百万数据导出实战
ExcelProperty("用户ID") private Long id;@ExcelProperty("姓名") private String name;@ExcelProperty("手机号") private String phone;@ExcelProperty("邮箱") private String email;@ExcelProperty("创建时间") private Date createTime;
2026-08-31 10:18:08
290
原创 MyBatis-Plus 大数据集批量导出:ResultHandler 详解与实战
是 MyBatis 提供的一个结果集处理接口,它允许我们在 MyBatis 遍历数据库结果集的过程中,逐行(或逐批)回调自定义逻辑,而不是等所有结果都映射完成后再统一返回。在 MyBatis-Plus 中,我们可以利用BaseMapper提供的selectList重载方法,传入和Wrapper// 使用 ResultHandler 流式查询@Data@ExcelProperty("用户ID")@ExcelProperty("姓名")@ExcelProperty("邮箱")
2026-08-31 09:27:17
366
原创 MyBatis-Plus 核心功能详解:IService接口基本用法和复杂业务开发
是 MyBatis-Plus 定义的一个泛型接口,T对应实体类类型。它位于getByIdsaveupdateByIdremoveByIdsaveBatchlistlistByIdscountpage@Service@OverrideIService接口是 MyBatis-Plus 提供的高效开发利器,它让 Service 层的 CRUD 代码量大幅减少,同时通过链式调用、条件构造器、逻辑删除、自动填充等特性,为复杂业务开发提供了强有力的支撑。简单单表操作直接使用IService内置方法。
2026-08-31 09:17:25
331
原创 MyBatis-Plus 核心功能详解:条件构造器、自定义 SQL 与主键策略
虽然 MP 提供了通用 CRUD,但在多表联查、复杂子查询、特定数据库函数等场景下,仍需要手写 SQL。MP 支持两种自定义 SQL 的方式:注解方式和 XML 方式。MP 最强大的特性之一是自定义 SQL 与 Wrapper 结合wrapper.gt(User::getAge, 18).like(User::getName, "张");这里的会被替换为 Wrapper 生成的WHERE子句,实现自定义 SQL 与动态条件的完美结合。
2026-08-31 09:13:50
349
原创 MyBatis-Plus 入门指南:快速上手、常用注解与配置详解
MyBatis-Plus 是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑。损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作。强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求。支持 Lambda 形式调用。
2026-08-28 17:17:12
102
原创 基础篇:Spring Data Redis 实战,从入门到精通,原理解析与使用场景
Bean// key 使用 String 序列化器// value 使用 JSON 序列化器本文从环境搭建、核心 API、序列化原理、连接池机制、缓存注解、典型场景到性能优化,系统性地介绍了 Spring Data Redis 的实战应用。掌握这些内容后,你已经能够应对绝大多数日常开发场景。Spring Data Redis 的价值不仅在于简化了 Redis 的操作,更在于它提供了与 Spring 生态无缝集成的能力。
2026-08-28 15:53:58
178
原创 Redis基础篇:Jedis 入门到Jedis 连接池与 Spring Data Redis 实战全解析
Jedis 是 Redis 官方推荐的 Java 客户端之一,它是一套简洁、轻量的 Redis Java 客户端库,提供了对 Redis 各种数据类型(String、Hash、List、Set、Sorted Set 等)的完整操作支持。轻量级,依赖少,上手简单API 设计直观,与 Redis 命令一一对应支持连接池、管道、事务等高级特性社区活跃,文档丰富。
2026-08-28 15:41:51
201
原创 Redis 基础篇:常见数据结构与命令实战
本文介绍了 Redis 五种核心数据结构及其常用命令,并通过库存扣减、消息队列、排行榜等实战场景展示了它们的典型用法。掌握这些基础后,建议进一步学习 Redis 的持久化机制(RDB/AOF)、过期策略、集群与哨兵架构,逐步构建生产级 Redis 应用能力。
2026-08-28 15:32:45
162
原创 Redis 学习指南:从入门到进阶的完整路线
学习路线总结:从基础到实战的完整闭环推荐的学习资源:官方文档、经典书籍、优质课程实践建议:搭建自己的 Redis 环境,动手完成一个综合项目。
2026-08-28 15:26:17
201
原创 基于工厂模式实现 MQTT 客户端
工厂模式是一种创建型设计模式,它提供了一种在不指定具体类的情况下创建对象的方式。简单来说,就是把new的过程从调用方剥离出来,交给专门的工厂类去处理。// 省略 getter / setter,请自行补充本文通过一个完整的 Java 示例,演示了如何用工厂模式优雅地管理 MQTT 客户端的创建与复用。解耦:调用方不再直接依赖具体客户端实现,只面向接口编程;复用:通过缓存机制避免重复创建连接,节省系统资源;易扩展:新增客户端类型时,只需新增实现类和对应工厂,无需改动既有代码;
2026-08-28 14:58:13
130
原创 SpringBoot 整合 MQTT 实战:从入门到精通
本文从 MQTT 协议的核心概念出发,完整演示了如何在 SpringBoot 项目中整合 Eclipse Paho MQTT 客户端,实现了连接管理、消息发布、订阅消费、断线重连、SSL 加密等核心功能。通过 REST 接口封装,可以方便地将 MQTT 能力暴露给上层业务。在实际项目中,建议根据业务场景合理选择 QoS 级别,做好消息的幂等处理和异常监控。结合 Spring 事件机制,可以将 MQTT 消息与业务逻辑彻底解耦,构建健壮的物联网消息平台。
2026-08-28 14:56:42
72
原创 Java 面试高频题精讲:Spring 核心原理与分布式技术实战
依赖注入是控制反转(IoC)的一种实现方式,它是指将对象所依赖的其他对象的创建和装配过程从对象自身中分离出来,由外部容器负责完成。这样做的好处是降低了对象之间的耦合度,使得对象更容易被测试和复用。Setter 注入:通过调用对象的 setter 方法注入依赖。示例代码如下:@Component// 通过 setter 方法注入依赖@Autowired关键点:Setter 注入通过@Autowired标注在 setter 方法上,Spring 容器在创建 Bean 后会调用该方法完成依赖注入。
2026-08-27 09:57:44
257
原创 JAVA面试题(161~170)
XSS(Cross Site Script,跨站脚本攻击)是向网页中注入恶意脚本在用户浏览网页时在用户浏览器中执行恶意脚本的攻击方式。跨站脚本攻击分有两种形式:反射型攻击(诱使用户点击一个嵌入恶意脚本的链接以达到攻击的目标,目前有很多攻击者利用论坛、微博发布含有恶意脚本的URL就属于这种方式)和持久型攻击(将恶意脚本提交到被攻击网站的数据库中,用户浏览网页时,恶意脚本从数据库中被加载到页面执行,QQ邮箱的早期版本就曾经被利用作为持久型跨站脚本攻击的平台)。
2026-08-27 09:53:42
195
原创 JAVA面试题(154~160)
② DispatcherServlet收到请求后,将根据请求的信息(包括URL、HTTP协议方法、请求头、请求参数、Cookie等)以及HandlerMapping的配置找到处理该请求的Handler(任何一个对象都可以作为请求的Handler)。⑤ Handler完成对用户请求的处理后,会返回一个ModelAndView对象给DispatcherServlet,ModelAndView顾名思义,包含了数据模型以及相应的视图的信息。参数 + 返回视图名的方式),其中包含了数据模型以及视图的逻辑名称。
2026-08-27 09:37:39
159
原创 JAVA面试题(141~153)
DetachedCriteria和Criteria的用法基本上是一致的,但Criteria是由Session的createCriteria()方法创建的,也就意味着离开创建它的Session,Criteria就无法使用了。DetachedCriteria不需要Session就可以创建(使用DetachedCriteria.forClass()方法创建),所以通常也称其为离线的Criteria,在需要进行查询操作的时候再和Session绑定(调用其getExecutableCriteria(Session)方
2026-08-25 16:44:46
162
原创 JAVA面试题(126~140)
对象关系映射(Object-Relational Mapping,简称 ORM)是一种为了解决程序的面向对象模型与数据库的关系模型互不匹配问题的技术。简单地说,ORM 是通过使用描述对象和数据库之间映射的元数据(在 Java 中可以用 XML 或者是注解),将程序中的对象自动持久化到关系数据库中,或者将关系数据库表中的行转换成 Java 对象。其本质上就是将数据从一种形式转换到另外一种形式。
2026-08-25 16:21:11
186
原创 Java Web 与 Web Service 面试题精选(116-125)
答:从表面上看,Web Service就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API。这就是说,你能够用编程的方法透明的调用这个应用程序,不需要了解它的任何细节,跟你使用的编程语言也没有关系。例如可以创建一个提供天气预报的Web Service,那么无论你用哪种编程语言开发的应用都可以通过调用它的API并传入城市信息来获得该城市的天气预报。
2026-08-25 10:54:12
178
原创 Java Web 与 Web Service 面试题精选(106-115)
分离JSP页面的内容和逻辑,简化了Web开发开发者可以创建自定义标签来封装业务逻辑和显示逻辑标签具有很好的可移植性、可维护性和可重用性避免了对Scriptlet(小脚本)的使用(很多公司的项目开发都不允许在JSP中书写小脚本)
2026-08-25 10:48:28
190
原创 Java Web 与 Web Service 面试题精选(96-105)
本部分精选了 Java Web 与 Web Service 方向的高频面试题,涵盖 Servlet、JSP、请求转发与重定向、GET/POST 等核心知识点,帮助你在面试前快速回顾与巩固。
2026-08-25 10:43:18
224
原创 Java面试经典15题(1-15)
本文整理了 Java 面试中高频出现的 15 个经典基础问题,涵盖面向对象、访问修饰符、数据类型、运算符、内存模型、包装类等核心知识点。每个问题都给出了简明扼要的解答,并附有必要的代码示例与补充说明,帮助读者在面试前快速回顾、查漏补缺。无论你是即将参加校招的应届生,还是准备跳槽的职场人,掌握这些基础概念都是扎实 Java 功底的第一步。建议先通读一遍,再针对薄弱环节重点复习。
2026-08-24 14:58:21
338
原创 Java面试经典10题(86-95)
本系列文章整理了 Java 面试中高频出现的经典题目,涵盖反射、面向对象设计原则、设计模式、单例模式、UML 建模以及常用算法等核心知识点。每道题都给出了简明扼要的解答思路和可直接运行的代码示例,帮助你在面试前快速回顾重点、查漏补缺。无论是准备校招、社招,还是日常巩固 Java 基础,这份题目清单都能作为一份实用的复习提纲。建议先独立思考作答,再对照参考答案,这样印象会更深刻。下面进入正题。
2026-08-24 14:50:23
267
原创 Java面试经典10题(76-85)
答:DAO(Data Access Object)顾名思义是一个为数据库或其他持久化机制提供了抽象接口的对象,在不暴露底层持久化方案实现细节的前提下提供了各种数据访问操作。在实际的开发中,应该将所有对数据源的访问操作进行抽象化后封装在一个公共API中。用程序设计语言来说,就是建立一个接口,接口中定义了此应用程序中将会用到的所有事务方法。在这个应用程序中,当需要和数据源进行交互的时候则使用这个接口,并且编写一个单独的类来实现这个接口,在逻辑上该类对应一个特定的数据存储。
2026-08-24 14:41:54
155
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅