加载中

Java

文章分类

浏览该分类下的所有文章

237 篇文章 20

使用Spring Boot整合Mybatis-Plus实现数据库的增删查改

本文示例演示了在Spring Boot项目中集成Mybatis‑Plus实现对MySQL表tbl_employee的增删改查。步骤包括:创建数据库及示例数据;使用Spring Boot初始化项目并引入Lombok、Mybatis‑Plus、MySQL、Druid等依赖;在application.yml中配置数据源;编写使用@TableName、@TableId、@Version注解的实体类User;创建继承BaseMapper的UserMapper;提供完整的pom.xml;通过JUnit测试类使用@MapperScan进行查询、插入、更新、删除等CRUD操作,验证Mybatis‑Plus的简化功能。

Elasticsearch初体验-----将MySQL的数据导入kibana并展示到页面

本文详细演示了在已装 Docker 的服务器上,使用 Docker 部署单节点 Elasticsearch(7.12.1)和 Kibana(7.12.1),包括创建网络、加载镜像、配置容器参数及端口映射。随后通过 MyBatis‑Plus 编写 Java 示例,批量查询 MySQL 中的 hotel 表数据,转换为文档并使用 RestHighLevelClient 的 BulkRequest 将其写入 Elasticsearch 索引。最后在 Kibana 的 DevTools 和可视化页面验证数据已成功导入并展示。

Redis实战常见问题与解决方案

本文以Java项目为例,系统梳理了Redis在实际使用中常见的缓存穿透、击穿、雪崩等问题,并提供了布隆过滤、空值缓存、互斥锁、逻辑过期、随机TTL等防护方案;针对缓存与数据库不一致,介绍了延迟双删和基于消息队列的最终一致性策略;针对大Key导致的内存压力,提出分片存储、使用合适数据结构以及配置LRU淘汰策略;最后给出连接池关键参数的调优示例,帮助提升系统的可靠性和性能。

SpringBoot开发中的十大常见问题与解决方案

文章系统梳理了SpringBoot 开发中常见的十类问题及对应的实用解决方案,重点包括:多环境配置文件的加载顺序与占位符使用、Bean 循环依赖和多实现冲突的 @Lazy、@Primary、@Qualifier 处理、@Transactional 的使用规范及传播行为、HikariCP 连接池的参数调优与泄露监控、Redis 缓存的穿透、击穿与一致性方案(空值缓存、分布式锁、@CacheEvict)等。每个问题均给出完整代码示例和最佳实践,帮助开发者快速定位并消除 SpringBoot 项目中的常见坑。

Java 21 新功能介绍(LTS)

Java 21(LTS)于2023年9月发布,包含15项JEP。核心特性有正式版虚拟线程与结构化并发,实现百万轻量线程和安全任务管理;Sequenced集合提升序列操作;记录模式、模式匹配增强代码可读性;外部函数与内存API取代JNI;预览版字符串模板、分代ZGC、后量子密钥封装等亦为亮点。文中列出弃用项、迁移检查与性能调优建议,并示例高并发Web服务和ETL场景,展望虚拟线程将成主流并发模型。

SpringBoot整合阿里云实现短信验证码功能

本文系统阐述了在 Spring Boot 项目中集成阿里云短信服务并结合 Redis 实现验证码功能的完整步骤。首先在 pom.xml 中引入阿里云 SDK、Redis 与工具类依赖,并在 application.yml 配置阿里云账号、短信模板、Redis 连接及验证码属性(有效期、长度、重发间隔)。随后提供 RedisTemplate 与阿里云短信 Client 的 Java 配置类,实现键值序列化和客户端初始化。核心业务通过 VerificationCodeService 接口定义发送和校验方法,Implementation 中实现:① 参数校验与手机号格式检查;② 基于 Redis 的发送频率限制;③ 随机生成验证码并存入 Redis(带过期时间);④ 调用阿里云 SendSms 接口发送短信;⑤ 验证时从 Redis 取码、比对并记录错误次数防止暴力破解,成功后删除验证码。全文覆盖依赖、配置、代码实现及常见异常处理,帮助快速搭建安全可靠的短信验证码系统。

Redis6标准配置文件

本文概述了 Redis 6 的标准配置文件结构及关键参数。包括单位写法、通过 `include` 引入其它配置、模块加载方式;网络部分阐明默认监听所有接口、`bind` 与 `protected‑mode` 的安全作用、端口、TCP backlog、Unix 套接字、空闲超时和 keepalive 设置;以及 TLS/SSL 的启用方式、证书/私钥、DH 参数、CA 认证和客户端证书策略。文章还提醒在公开网络环境下避免绑定所有接口并慎用受保护模式。

CentOS 7 安装 JDK 8、MySQL 8、Redis 6、Nginx保姆级教程

本文提供在 CentOS 7 上快速部署 JDK 8、MySQL 8、Redis 6 与 Nginx 的完整步骤。包括卸载旧 Java、使用 yum 安装 OpenJDK 8 并配置 JAVA_HOME;添加阿里云 YUM 源、安装 MySQL 社区版、启动并设为开机自启、放通 3306 端口;安装 gcc、下载源码编译 Redis、编辑配置、创建 systemd 服务并设为自启;安装 EPEL 仓库后通过 yum 安装 Nginx、设为开机自启、启动并放通 http/https 端口。每部分均给出关键命令,适合新手一键完成环境搭建。

Swagger使用教程

Swagger(OpenAPI)提供统一的API描述、可视化文档和代码生成工具链。核心组件包括 OpenAPI 规范、Swagger UI、Editor、Codegen,解决前后端不同步、文档滞后和接口测试繁琐等痛点。教程分别演示了 Node.js+Express(通过 swagger-jsdoc 与 swagger-ui‑express)和 Spring Boot(使用 springdoc‑openapi) 的快速集成步骤、注解写法以及文档访问方式。随后介绍了 OpenAPI YAML 编写规范、利用 UI “Try it out” 进行手动/自动化测试(Postman、Dredd、cURL),以及通过 Codegen 生成服务器骨架和客户端 SDK 的实践。最后给出生产部署安全、Docker 化、CI/CD 纳入契约测试和代码生成的最佳实践,并建议新项目采用“契约先行”设计、自动化生成和持续集成,以提升协作效率和代码质量。

@EnableWebMvc:Spring MVC定制的双刃剑

@EnableWebMvc 用于完全接管 Spring MVC 配置,导入默认 MVC 设置并允许实现 WebMvcConfigurer 进行定制。若在 Spring Boot 中使用,会关闭其自动配置,常导致静态资源、视图解析、消息转换和 CORS 等功能失效,需要显式配置资源处理、默认 Servlet、消息转换器和跨域规则。传统 Spring MVC 项目必须加 @EnableWebMvc,才能自行配置视图解析、拦截器、文件上传等。最佳实践是仅在需完全覆盖默认行为时使用,平时通过实现 WebMvcConfigurer 即可;使用时务必检查视图解析、资源处理、消息转换、默认 Servlet、跨域和格式化器等关键配置,并通过日志或调试接口验证生效。

Seata分布式事务:Java微服务架构下的“数据一致性”通关指南

Seata 通过事务协调器(TC)、事务管理器(TM)和资源管理器(RM)实现微服务间的全局事务,解决跨服务“全或无”的一致性难题。文章先分析传统 XA、TCC、消息表等方案的性能与实现成本,随后介绍 Seata 的三大模式:AT(自动生成回滚日志、零代码侵入,适用于大多数关系型业务)、TCC(手动 Try‑Confirm‑Cancel,支持非关系型资源并需保证幂等与防悬挂)以及 Saga(正向 + 补偿链,适用于长事务的最终一致性)。在实战部分给出 AT 场景的环境搭建、全局事务注解、XID 传递及 RM 的本地事务实现;并演示 TCC 接口定义与注意事项、Saga 注解与补偿方法编写。最后提供生产环境的避坑指南:TC 高可用(推荐 DB/Redis 存储)、XID 传播要在 HTTP、RPC、消息等链路中显式传递,以及常见配置要点。全文为 Java 开发者提供了从原理到落地的完整 Seata 使用手册。

Istio服务网格:Java微服务无侵入式治理实战

微服务治理常因代码冗余、侵入式、可观测差而难以维护。Istio 通过 Sidecar 将流量治理、安全、可观测等能力从业务代码剥离,只需在 K8s 上部署 Istio、开启自动注入,即可为 Java 微服务(如 order‑service、inventory‑service)提供灰度发布、熔断、限流等配置,无需改动业务代码。结合 OpenTelemetry、Jaeger/Prometheus,自动生成调用链、指标仪表盘。文中还列出 Sidecar 注入失败、链路缺失、规则不生效等常见坑及排查方法,并给出从基础路由到多集群安全的最佳实践建议。