- 博客(54)
- 资源 (1)
- 收藏
- 关注
原创 【Java】Spring Boot 中依赖循环问题的产生与解决方案详解
摘要: 本文针对Spring Boot开发中的依赖循环问题,通过用户服务与订单服务相互依赖的案例,分析了循环依赖的产生原因及Spring的解决机制。重点介绍了四种解决方案:1)重构代码提取公共逻辑(推荐);2)使用@Lazy延迟加载(临时方案);3)改用Setter/Field注入(不推荐);4)手动获取Bean(极端情况)。文章强调应优先采用构造器注入和架构优化,避免服务间直接耦合,并提供了方案对比表。最终指出循环依赖反映了设计缺陷,建议通过领域事件等方式解耦,而非仅靠技术手段绕过问题。(149字)
2025-11-28 11:12:39
923
原创 【Java】Spring Boot 缓存实战:深入理解 @Cacheable 注解及其参数详解
本文深入讲解Spring框架中@Cacheable注解的使用方法,详细介绍了其核心参数如cacheNames、key、condition等的功能与配置技巧。通过代码案例展示了基础缓存、条件缓存、防缓存击穿等典型场景的实现方式,并提供了完整的单元测试验证缓存行为。文章还指出了缓存使用中需要注意的穿透、雪崩、击穿等问题及解决方案,帮助开发者正确应用缓存提升系统性能。适用于需要优化Web应用性能的Spring开发者。
2025-11-26 11:25:34
647
原创 【Java】Spring Boot Event事件驱动开发:使用 ApplicationEvent 实现解耦通信
Spring Boot 事件驱动开发:使用 ApplicationEvent 实现解耦通信 摘要:本文介绍了 Spring Boot 中的事件驱动开发模式,通过 ApplicationEvent 实现组件间松耦合通信。核心内容包括:1) Spring 事件机制基于观察者模式,包含 ApplicationEvent、ApplicationListener 和 ApplicationEventPublisher 三大组件;2) 详细代码示例展示如何创建自定义事件、发布服务和监听器;3) 提供单元测试和集成测试方
2025-11-26 11:04:23
914
原创 【Java】深入理解 Java 动态代理:JDK 与 CGLIB 的原理、区别及实战示例
在 Java 开发中,动态代理是实现 AOP、事务控制、日志拦截等核心功能的关键技术。本文全面对比了 JDK 动态代理与 CGLIB 动态代理的实现原理、适用场景、性能差异及限制条件,并提供完整可运行的代码示例。通过本文,你将掌握如何根据项目需求选择合适的代理方式,并深入理解 Spring 等框架背后的代理机制。
2025-11-25 12:45:34
55
原创 Vue表格多选后,将勾选数据返现到弹框中列表,部分数据出现丢失情况
摘要:Vue表格多选后,将勾选数据返现到弹框中列表,部分数据出现丢失情况。客户反馈勾选表格数据后返回条目不一致的问题,原因是后端按create_time倒序排序时,相同时间导致跨页勾选异常。解决方法是在排序条件中增加自增ID字段,确保返回数据顺序固定,避免数据丢失。该方案有效解决了跨页勾选异常问题。
2025-09-28 13:57:01
166
原创 【Java】使用FreeMarker来实现Word自定义导出
本文介绍了使用Java中的FreeMarker模板引擎实现Word文档导出的方法。首先通过Maven引入freemarker依赖库,然后提供了两种Word导出工具类实现:一种基于磁盘路径加载模板(CreateWord方法),另一种使用相对路径加载模板(GeneratorWord方法)。工具类包含配置FreeMarker版本、设置编码格式、处理模板文件等核心功能,并提供了下载文件的方法(downloadFile),支持处理不同浏览器环境下的文件名编码问题。这些方法能够有效解决常规Excel无法满足的特殊导出需
2025-08-04 16:34:49
812
原创 【Java】XML文件的ResultMap生成工具类
xml文件中,快速生成resultMap映射,通过指定实体类来快速生成xml文件的resultMap映射文件
2024-09-24 14:58:44
602
原创 【Java】微服务负载均衡算法实现
Java负载均衡是指在多台服务器之间分配负载,以提高服务器的性能和可用性。它通过将请求分发到多台服务器来减少单个服务器的压力,从而提高系统的性能和可用性。这篇只是了解一下负载均衡的算法是如何实现的,在平常使用的话,feign里已经实现了负载均衡策略,所以不需要我们手动去撸代码实现。
2023-07-24 11:44:54
975
原创 【Java】使用多态特性来实现微信、支付宝、银联的流程部署
这篇文章使用Java中多态的特性来完成不同方式的。案例:使用接口多态的特性来完成微信支付宝银联的支付。
2023-06-30 12:03:39
940
原创 【微信支付】微信v3支付案例,SpringBoot集成IJPay实现微信v3支付
微信v3支付案例,SpringBoot集成IJPay实现微信v3支付
2023-06-15 15:22:51
3532
原创 【分布式事务TCC模式】 SpringCloud整合Seata框架,实现TCC模式
分布式事务TCC模式案例,在SpringCloud中集成Seata的TCC模型案例,简单了解TCC模型使用
2023-04-14 16:33:53
1277
原创 【分布式事务AT模式 SpringCloud集成Seata框架】分布式事务框架Seata详细讲解
SpringCloud整合seata框架,案例demo
2023-04-12 16:11:41
1490
原创 【分布式事务 本地部署Seata服务】分布式事务框架Seata本地部署详细讲解
本地部署seata服务,配置nacos,启动本地seata server服务
2023-04-12 15:20:52
2147
原创 【Java】HTTP请求工具类
在工作中可能存在要去调用其他项目的接口,这篇文章我们实现在Java代码中实现调用其他项目的接口。创建一个携带参数的POST请求,去请求其他项目的接口并返回数据。附加HTTP请求工具类,包含(GET、POST、无参GET、无参POST)
2022-12-26 16:36:10
6081
原创 【Java】自定义异常类
在这篇文章我给大家演示一下自定义异常类的编写,在业务编写时可以返回我们的自定义异常信息和状态码等如果参数为null或者为空则抛出我们自定义的异常。
2022-12-26 09:01:48
4006
原创 【Java】打印出一个对象的所有属性
如何打印出一个对象里面的所有属性和对应的值,通过重写`toString()`方法来实现。重写对象的toString方法,方法返回对象的所有属性。
2022-12-06 16:39:29
4928
原创 【Mybatis】Mybatis批量插入操作【详细教程】
对于我们在开发中很多场景都会遇到一些批量数据的插入操作,这篇文章我会简单展示一下案例和在插入时所注意的事项。
2022-10-28 08:34:02
6510
原创 【Java】统一结果集返回工具类
在我们java平常的开发中,比较重要的一点就是对于接口的返回值的定义,因为基本大部分的api接口都需要一个统一的返回,这样调用方就比较好处理,逻辑也清晰,所以设计一个统一的返回就比较重要了。例如200 可以标识成功,500可以表示报错,110可以表示未登录,120可以表示没有权限…code一般用来表示接口的调用情况,调用方可以根据code表判断这个接口的调用情况,些查询接口调用会有一个返回数据,用data来表示,工具类采用Object。
2022-10-20 11:59:02
2353
原创 【Flowable】Flowable工作流教程
我们要构建的流程是一个非常简单的请假流程。Flowable引擎需要流程定义为BPMN 2.0格式,这是一个业界广泛接受的XML标准。在Flowable术语中,我们将其称为一个流程定义(process definition)。一个流程定义可以启动多个流程实例(process instance)。流程定义可以看做是重复执行流程的蓝图。在这个例子中,流程定义定义了请假的各个步骤,而一个流程实例对应某个雇员提出的一个请假申请。我们要使用的流程定义为:这个流程应该已经十分自我解释了。
2022-10-14 14:39:54
9987
原创 SpringBoot整合Redis
在SpringBoot中操作Redis,了解RedisProperties的配置。这期会说一下SpringBoot的约定大于配置首先创建一个SpringBoot项目,版本按照自己的jdk来勾选 SpringWeb和Redis依赖删除多余文件我们在配置文件中配置redis开始测试一下,开启redis服务在测试类中编写代码 opsForValue()是操作字符串的,操作list就是ForList()操作hash就是ForHash()我们来创建一个User 在测试类中测试 运行一下可以看到报错的信息是没有序列化,
2022-06-17 09:30:19
549
原创 Mybatis使用on duplicate key update操作详解
mybatis的on duplicate key update练习,唯一索引存在则更新不存在则插入
2022-06-13 12:16:52
8121
3
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅