Spring Cloud Alibaba
文章平均质量分 91
小丁学Java
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
从 500 到 200:一次因“环境串扰”引发的微服务雪崩排查实录(Nacos)
摘要: 本文记录了一次由Nacos环境串扰引发的微服务雪崩事故排查过程。作者在本地开发时发现所有接口返回500错误,网关日志显示PrematureCloseException。排查发现Nacos注册中心同时存在本地和Docker环境的服务实例,导致请求被随机路由到不可达的Docker内部IP。通过创建独立的Nacos命名空间实现环境隔离,最终解决了问题。文章强调了环境隔离的重要性,并分享了微服务网络模型、日志分析等实用排查技巧。(149字)原创 2025-11-05 16:09:50 · 1136 阅读 · 0 评论 -
Mybatis-Plus 探秘:createTime 为 NULL?一文搞定优雅的自动填充!
摘要: MyBatis-Plus自动填充失效?createTime为NULL的常见问题解析!本文揭示了@TableField注解仅是声明,实际需要实现MetaObjectHandler接口来执行填充操作。通过创建MyMetaObjectHandler类并标注@Component,在insertFill和updateFill方法中设置LocalDateTime.now(),即可解决字段自动填充问题。两步配置后,重启应用即可看到日志中自动填充生效,数据库时间字段被正确更新。掌握"声明+实现"原创 2025-10-25 17:22:54 · 1115 阅读 · 0 评论 -
MyBatis 进阶:告别 Service 层循环,用一条 SQL 优雅解决“用户角色标记”问题
本文介绍了一种优化MyBatis查询的方法,通过单条SQL解决用户角色标记问题。传统实现需要在Service层进行多次查询和内存比对,效率较低。优化方案使用MyBatis XML编写一条包含LEFT JOIN和CASE WHEN的SQL,直接在数据库层面完成角色与用户的关联判断,生成带有owned标记的结果集。这种方法将计算逻辑下推到数据库,减少网络交互和应用层处理,使Service层代码更简洁高效。文章强调了数据库原生处理集合运算的优势,并展示了如何利用MyBatis XML实现复杂SQL映射,为类似场景原创 2025-10-25 16:30:13 · 706 阅读 · 0 评论 -
GET 还是 POST?我的前端搜索参数为何在后端“神秘失踪”了
GET请求在传递嵌套对象参数时,前端(如Axios)会序列化为keyword[field]=...格式,但Spring Boot默认无法解析这种结构,导致后端接收参数为null。解决方案是改用POST请求+@RequestBody接收JSON格式参数:1) 后端改为@PostMapping并创建包含嵌套结构的DTO;2) 前端将请求方法改为post,参数放入data。这种方案能完美支持复杂查询条件传递,避免GET请求的参数解析问题。原创 2025-10-24 18:52:32 · 528 阅读 · 0 评论 -
Java 对象里的“隐形”字段:为何我的 JSON 里多出了一个 pages?
摘要:MyBatis-Plus分页返回的JSON中莫名多出pages字段,但在源码中却找不到对应字段。通过分析发现,Jackson序列化器是根据Java Bean规范的Getter方法而非字段来生成JSON的。IPage接口中的default long getPages()方法通过计算total和size得出总页数,从而在JSON中生成这个"隐形"字段。这揭示了JSON序列化的核心机制:序列化器扫描公共Getter方法,通过方法名推导JSON键名,并调用方法获取值。这种设计实现了优雅的&原创 2025-10-24 17:14:28 · 620 阅读 · 0 评论 -
MyBatis-Plus 分页的“谜案”:为何我的 total 总是 0?
摘要: MyBatis-Plus分页查询时,数据列表正常但total始终为0?这是分页插件未生效的典型表现。通过日志分析发现,实际只执行了基础查询,缺少COUNT和LIMIT语句。解决方案是创建配置类显式注册分页插件:新建MybatisPlusConfig类,添加@Configuration注解,在方法中构建MybatisPlusInterceptor并加入PaginationInnerInterceptor(需指定数据库类型)。配置完成后,分页插件会正常执行COUNT查询和LIMIT分页,返回正确的tot原创 2025-10-24 16:56:01 · 911 阅读 · 0 评论 -
MyBatis-Plus 性能优化:告别循环插入,拥抱 Batch Insert 的“速度与激情”!
摘要:本文介绍了如何优化MyBatis-Plus中的批量插入操作,解决循环插入导致的性能问题。作者通过一个角色分配菜单权限的案例,展示了传统循环插入方式的弊端——产生大量独立SQL语句。通过改造Mapper接口、使用MyBatis的<foreach>标签实现批量SQL,最终将17次插入合并为1次,大幅提升性能。优化后数据库交互从18次降至2次,同时保留了事务完整性。文章强调了避免循环数据库操作、善用框架特性以及重视日志分析的重要性,为类似场景提供了实用优化方案。原创 2025-10-24 15:26:01 · 1097 阅读 · 0 评论 -
Spring Boot 启动失败:我明明没用数据库,为何它偏要找 DataSource?
一个全新的、干干净净的微服务,你发誓它连一行数据库操作代码都没有,结果一启动,控制台就给你甩来一堆红色的错误:Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.原创 2025-10-22 15:54:37 · 1335 阅读 · 0 评论 -
解密 Spring Boot 核心配置:MySQL (Druid) & Redis 篇
摘要: 本文深入解析Spring Boot中MySQL(Druid)和Redis的核心配置要点。MySQL部分强调8.0+版本需添加allowPublicKeyRetrieval=true参数,详解Druid连接池优化配置;Redis部分指出Spring Boot 3.x配置路径简化为spring.redis,并介绍Lettuce连接池设置。文章特别提醒注意时区设置、编码规范、敏感信息管理等常见"坑点",帮助开发者编写更稳定高效的配置。配置虽小却直接影响应用性能,合理设置连接池参数和正确原创 2025-10-15 19:43:03 · 969 阅读 · 0 评论 -
Nacos 重启“二重奏”:从认证配置到JWT密钥,一次搞定!
摘要:本文详细记录了解决Nacos容器无限重启问题的完整过程。首次启动失败是因缺少认证密钥配置,补充NACOS_CORE_AUTH_SERVER_IDENTITY_KEY/VALUE后,又因JWT密钥长度不足(需≥32字节且Base64编码)再次失败。通过生成符合要求的Base64密钥并更新NACOS_AUTH_TOKEN,最终使Nacos、MySQL、Redis全部正常启动。关键经验:利用docker logs精准定位错误,严格遵循安全规范配置参数,日志中的ERROR和Caused by是解决问题的金钥匙原创 2025-10-15 14:30:54 · 742 阅读 · 0 评论
分享