加载中

Java

文章分类

浏览该分类下的所有文章

237 篇文章 20

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

本文示例演示了在 Spring Boot 项目中集成 MyBatis‑Plus,实现对 MySQL 表 `tbl_employee` 的增删改查。步骤包括:①创建数据库表并插入示例数据;②使用 Spring Initializr 初始化项目并勾选 Lombok;③在 `pom.xml` 中加入 MyBatis‑Plus、MySQL、Druid 等依赖;④将配置文件改为 `application.yml`,配置 Druid 数据源连接信息;⑤编写实体类 `User`,使用 `@TableName`、`@TableId`、`@Version` 注解并借助 Lombok 简化代码;⑥定义继承 `BaseMapper` 的 `UserMapper` 接口;⑦在测试类中通过 `@MapperScan` 扫描 Mapper,使用 JUnit 编写查询、插入、更新、删除等 CRUD 测试,验证 MyBatis‑Plus 的自动化 CRUD 功能。全文提供完整代码与配置,帮助快速搭建基于 Spring Boot 的 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** 可在文件开头引入其他配置,以实现模板化或覆盖;**MODULES** 用于在启动时加载动态模块。**NETWORK** 部分默认监听所有接口(`bind 0.0.0.0`),但建议绑定本地回环以防暴露;`protected-mode` 默认开启,若未绑定特定地址且未设密码,仅接受本机连接,可通过 `protected-mode no` 关闭。`port` 默认 6379,`tcp-backlog` 控制连接队列,`timeout` 与 `tcp-keepalive`(默认 300 秒)管理空闲连接。**TLS/SSL** 默认关闭,启用需配置 `tls-port`、证书、私钥、CA 文件等,并可通过 `tls-auth-clients` 设置客户端证书的必需性。文件还提供 Unix 套接字、权限等可选项,整体示例展示了安全、网络和模块化的完整配置方法。

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

本文提供了在 CentOS 7 上快速部署 JDK 8、MySQL 8、Redis 6 与 Nginx 的完整步骤。先检查并卸载旧 Java,使用 yum 安装 OpenJDK 8 并在 /etc/profile 中配置 JAVA_HOME 与路径;随后备份并替换 YUM 源,添加 MySQL 官方仓库,安装 MySQL 服务,启动并设为开机自启,同时放通 3306 端口;接着安装编译依赖 gcc,下载 Redis 源码,编译安装,编辑配置以允许远程访问,创建 systemd 服务文件并设为开机自启;最后安装 EPEL 仓库后通过 yum 安装 Nginx,启用并启动服务,放通 HTTP/HTTPS 端口。每一步均附有相应的 firewall‑cmd 与 systemctl 操作,确保服务安全、可用。

Swagger使用教程

Swagger(OpenAPI)提供描述、文档、测试、代码生成的完整生态体系,核心组件包括 OpenAPI 规范、Swagger UI、Editor 和 Codegen。教程分别演示了 Node.js + Express 与 Spring Boot 的快速集成步骤,说明通过注解或 JSDoc 编写规范、配置 Swagger UI 并生成交互文档。随后介绍了利用 UI 调试、导出 Postman、契约测试(Dredd)以及自动化代码生成的实践,并给出生产环境安全、Docker 部署和 CI/CD 纳入规范检查的最佳方案。最后强调“契约先行”模式,可提升前后端协作效率、保证 API 一致性。

@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 注入失败、链路缺失、规则不生效等常见坑及排查方法,并给出从基础路由到多集群安全的最佳实践建议。