加载中

Java

文章分类

浏览该分类下的所有文章

237 篇文章 20

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

本文详细演示了在Spring Boot项目中集成Mybatis‑Plus实现对MySQL表tbl_employee的增删改查。步骤包括:创建数据库及示例数据;使用Spring Boot初始化项目并勾选Lombok;在pom.xml中加入mybatis‑plus、mysql‑connector、druid等依赖;将配置文件改为application.yml并写入数据库连接信息;编写带@TableName、@TableId、@Version注解的实体类User;创建继承BaseMapper的UserMapper;在测试类中通过@MapperScan扫描mapper,实现selectAll、insertOne等基本CRUD操作并验证结果。整个过程提供了完整代码和配置示例,便于快速上手Spring Boot与Mybatis‑Plus的数据库操作。

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

本文示例了在已装 Docker 的服务器上,使用 Docker 部署单节点 Elasticsearch(7.12.1)和 Kibana(7.12.1)的完整流程。首先创建专用网络 es‑net,加载并运行 ES 与 Kibana 镜像,配置内存、端口、数据卷等参数,实现浏览器访问 http://<IP>:9200 与 http://<IP>:5601。随后通过 Java 代码结合 Mybatis‑Plus,将 MySQL 中的 hotel 表批量转换为 JSON 文档并使用 RestHighLevelClient 的 BulkRequest 写入 ES 索引 hotel。导入成功后,可在 Kibana 的 DevTools 与可视化页面查看并展示这些数据。全过程提供命令、参数解释以及代码示例,帮助读者快速实现 MySQL 数据在 Kibana 中的可视化。

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

本文围绕Java 项目中使用 Redis 的常见坑展开,分别介绍了缓存穿透、击穿、雪崩的成因及防护措施(布隆过滤、互斥锁、逻辑过期、随机 TTL、热点永不过期等),阐述了缓存与数据库一致性问题并提供延迟双删、消息队列最终一致性等方案,讨论了大 key 导致的内存压力及分片存储、合适数据结构的优化思路,还给出内存淘汰策略(allkeys‑lru)和连接池参数(maxTotal、maxIdle、testOnBorrow 等)的最佳配置建议,以帮助开发者在实际项目中提升 Redis 的可靠性与性能。

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

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

Java 21 新功能介绍(LTS)

Java 21(LTS)在2023年9月发布,带来15项正式JEP,核心在于并发模型的革命。虚拟线程(JEP 444)提供百万级轻量线程,实现资源高效、编程简化且兼容Thread API;结构化并发(JEP 453)通过作用域管理任务生命周期、自动错误传播和可观测性,提升并发安全性。新增序列集合(JEP 431)扩展集合操作,记录模式与模式匹配(JEP 440)增强解构与守卫表达。外部函数与内存API(JEP 442)取代JNI,实现安全高效的原生调用。其他亮点包括字符串模板(预览)、分代ZGC、后量子密钥封装等。文章还提供迁移检查、性能调优建议,并示例高并发Web服务和ETL场景,指出Java 21为未来轻量并发和模式匹配奠定基础,鼓励尽快规划升级。

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

本文介绍在Spring Boot 项目中集成阿里云短信服务并结合 Redis 实现验证码功能。内容包括在 pom.xml 添加阿里云 SDK、Redis 与工具依赖,在 application.yml 配置阿里云账户、短信模板、Redis 连接及验证码属性。提供 RedisTemplate 与阿里云 Client 的配置类。实现 VerificationCodeService 接口,发送验证码时校验手机号、限制发送频率、生成随机码、写入 Redis(含过期)并调用阿里云 SendSms;验证时从 Redis 读取并比对,处理验证码过期、错误次数限制以及成功后删除。代码示例展示完整业务流程与异常日志记录。

Redis6标准配置文件

本文展示 Redis 6 标准配置文件的结构与关键选项。说明了单位写法、通过 include 引入其他配置、loadmodule 加载模块。网络部分重点介绍 bind、protected-mode、port、tcp‑backlog、unixsocket、timeout、tcp‑keepalive 等默认值及安全警示。TLS/SSL 部分列出启用 tls‑port、证书、密钥、CA、dh‑params、客户端证书验证方式等配置方法。整体提供了完整的注释示例,帮助用户根据需求定制 Redis 实例。

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

本文提供了在 CentOS 7 上快速部署常用服务的完整步骤。首先通过 yum 移除旧版 JDK 并安装 OpenJDK 8,随后编辑 /etc/profile 配置 JAVA_HOME、PATH 等环境变量并使其生效。接着备份并替换阿里云 YUM 源,添加 MySQL 官方仓库,安装 MySQL 8,启动并设为开机自启,同时放通 3306 端口。随后说明安装 Redis 6 所需的 gcc 编译环境,下载源码、编译安装、修改配置以支持远程访问并创建 systemd 服务实现开机自启。最后介绍使用 epel‑release 安装 Nginx,设置开机自启、启动服务并通过 firewall‑cmd 放通 HTTP/HTTPS。每个环节均附有关键命令,适合作为新手的保姆级参考。

Swagger使用教程

Swagger(OpenAPI)是用于设计、文档化、测试和生成 RESTful API 的完整生态,核心组件包括 OpenAPI 规范、Swagger UI、Editor 与 Codegen。教程分别演示了 Node.js + Express 与 Spring Boot 的集成方式、注解编写及 Swagger UI 访问;提供 OpenAPI YAML 示例、自动化测试和代码生成的实践;并给出安全、Docker 部署及 CI/CD 建议,强调“契约先行”、代码生成和持续契约测试是提升前后端协作、质量和效率的关键。

@EnableWebMvc:Spring MVC定制的双刃剑

@EnableWebMvc 用来完全接管 Spring MVC 配置,导入默认 MVC 设置并可实现 WebMvcConfigurer 进行定制。若在 Spring Boot 项目中使用,会关闭 WebMvcAutoConfiguration,导致静态资源、视图解析、消息转换、CORS 等功能失效,需要显式配置资源处理、默认 Servlet、消息转换器和跨域规则。传统非 Boot 项目必须使用 @EnableWebMvc。最佳实践是仅在需要完全覆盖默认配置时才加注解,平时通过实现 WebMvcConfigurer 即可;使用时务必检查视图解析、资源处理、消息转换、默认 Servlet、CORS 等关键项,并通过 DEBUG 日志或自定义检查端点排查问题。

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

Seata 通过事务协调器(TC)、事务管理器(TM)和资源管理器(RM)实现跨微服务的全局事务,解决传统本地事务在分布式环境下的“一致性”难题。文章先阐述订单、库存、账户等场景下数据不一致的痛点,比较 XA、手动 TCC、消息表等方案的局限,再详细介绍 Seata 三大模式的原理与实现路径:AT 模式凭回滚日志实现零侵入式自动补偿;TCC 模式提供 Try‑Confirm‑Cancel 接口以手动控制资源预留与回滚;Saga 模式通过正向‑补偿链式执行,适用于长事务。随后给出基于 Spring‑Boot 的环境搭建、全局事务注解使用、XID 传播配置以及 TC 高可用、存储模式选择等生产实战注意事项,为 Java 开发者在微服务架构下落地分布式事务提供完整指南。

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

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