SpringBoot自定义MessageConverter与内容协商管理器详解

本文详细介绍了在Spring Boot中如何自定义HttpMessageConverter以返回特定格式的响应数据,并通过配置contentNegotiationManager支持通过URL参数进行媒体类型协商。通过实现WebMvcConfigurer接口,可以优雅地扩展默认的转换器,解决默认仅支持JSON和XML的问题,实现在Postman和浏览器中均能获取自定义格式(如分号拼接字符串)的响应。

SpringBoot自定义MessageConverter与内容协商管理器详解

Java使用RestHighLevelClient操作Elasticsearch的基础教程

本文介绍在Java项目中通过Spring Boot配置并使用RestHighLevelClient连接Elasticsearch进行索引创建、删除、查询及文档增删改查的基本操作。重点解析高版本Spring Boot依赖冲突的解决方法,并指出该客户端在当前Elasticsearch 8.x环境中的兼容性问题及迁移建议。

Java使用RestHighLevelClient操作Elasticsearch的基础教程

Spring Boot YAML配置文件语法详解与数据读取

本文详细介绍Spring Boot中YAML配置文件的语法规则,涵盖字面量、对象、数组及复合结构的书写方式。重点解析使用 @ConfigurationProperties 和 @Value 注解读取各类配置数据的技巧,包括字符串转义、Map集合引用及多文档环境切换,帮助开发者规范使用YAML进行项目配置管理。

Spring Boot YAML配置文件语法详解与数据读取

Java 线程池原理:从 Thread.start() 到工作循环

分析 Java 线程的执行机制与生命周期,解释频繁创建线程带来的用户态到内核态切换开销。通过 Thread 的 start0 native 方法揭示线程本质是执行一个函数后退出。阐述线程池通过 while 循环复用线程并阻塞等待任务队列的核心原理,为后续深入实现打下基础。

Java 线程池原理:从 Thread.start() 到工作循环

Java Socket编程:获取远程与本地IP及端口信息实例

本文介绍在Java网络编程中,如何分别通过ServerSocket监听连接以及Socket建立连接后,获取服务器端与客户端的IP地址和端口号。通过ServerSocketFrame和ClientSocketFrame两个示例类,演示使用getInetAddress、getPort等方法提取网络通信中的地址信息,适用于聊天室或即时通讯应用的基础开发需求。

Java Socket编程:获取远程与本地IP及端口信息实例

Java实现图深度优先搜索与路径查找算法详解

本文详细解析如何在Java中基于深度优先搜索(DFS)实现图的顶点间路径查找。通过构建标记数组和边追踪数组(edgeTo),记录搜索过程中的遍历路径,从而高效判断两点间是否存在通路并还原具体路径。文章提供完整的API设计思路、核心代码实现及测试用例,帮助开发者掌握这一基础且重要的图论算法。

Java实现图深度优先搜索与路径查找算法详解

Java单例模式:8种实现方式详解与最佳实践对比

本文深入解析Java单例模式的8种实现方式,涵盖基础写法、饿汉式、线程不安全/安全的懒汉式、双检锁(DCL)、静态内部类及枚举单例。重点对比各模式在内存占用、线程安全及性能上的差异,并推荐使用静态内部类和枚举作为生产环境的标准方案,辅以工具类简化实现。

SpringBoot @Configuration与@Bean注解使用指南

本文介绍SpringBoot中用@Configuration定义配置类和使用@Bean注册组件的替代XML方式。通过代码演示如何在容器中管理单实例Bean,并深入解析proxyBeanMethods属性导致的Full(CGLIB代理)与Lite模式差异,帮助开发者在组件依赖场景下正确选择最佳实践。

Java TCP Socket 编程实战:聊天室服务端与客户端实现

本文详细解析 Java TCP Socket 网络编程的核心原理,涵盖 Socket 地址结构、连接建立过程及数据流转机制。通过提供完整的 ChatServer 和 ChatClient 实例代码,展示如何监听端口、处理并发连接并读写数据。重点讲解 flush() 方法在缓冲区数据发送中的关键作用,帮助开发者掌握基于流的网络通信基础。

Java TCP Socket 编程实战:聊天室服务端与客户端实现