- 博客(13)
- 收藏
- 关注
原创 打造高效的Excel数据导出功能:基于Spring Boot的实现方案
最终,使用导出功能变得非常方便,只需在目标分页接口上加上自定义的注解,设置导出文件名和表头即可。/*** 导出文件名* @return 导出文件名*//*** 导出表格表头* @return 表头设置*/Class
2024-08-02 15:49:07
625
原创 设计模式:责任链模式的动态配置
责任链模式是一种行为设计模式,允许多个对象依次处理请求,直到有对象处理该请求为止。请求沿着责任链传递,每个对象有机会处理该请求或将其传递给链中的下一个对象。但是往往在实际开发过程中,需求是多变的,按照传统的写法流程比较固定,不能灵活的增加或减少流程节点,亦不能调整处理的顺序。以下通过一个请假申请的例子展示如何实现流程动态可配。首先,定义一个处理器抽象类,每个请假审批节点都继承这个抽象类,并实现方法处理每一类审批人自己的逻辑,这儿为了抽离处理下一个流程的公共代码。
2024-06-18 17:35:38
882
1
原创 自定义Spring Boot Starter:使用注解+AOP实现业务日志处理
统一的日志处理复杂的第三方库集成公司内部的标准化开发框架统一配置和管理本文介绍的属于第一种,主要作用是为了让业务流程日志的监管与实际业务解耦和代码多次复用的目的,并且支持自动配置,功能扩展;简单介绍一下业务背景,我们有一个业务中台需要收集各个业务系统用户在各类业务上操作的日志信息做数据分析使用,而我负责的项目,需要提供50多个业务节点的流程监管数据。我们系统是一个微服务项目,业务分布在各个服务,总不能在每个业务节点触发的地方都触发一些流程监管吧;
2024-06-03 18:25:24
707
原创 Spring Boot Starter:介绍、对比、使用场景和如何自定义
在SpringBoot项目中,经常能够在pom文件中看到以或命名的一些依赖。等等。Spring Boot Starter 是一组便捷的依赖描述符,它们封装了特定技术或功能的所有必要依赖项和配置,使开发者能够快速将这些功能集成到 Spring Boot 项目中。每个 Starter 都对应一个功能或技术栈,通过引入相应的 Starter,开发者无需手动配置和管理多个相关依赖项,就能轻松启用该功能。在 Spring Boot 项目中,自定义 Starter 可以极大地简化和标准化特定功能的集成和配置。
2024-05-28 17:55:56
1301
原创 探秘Spring Boot中的8种初始化操作方式和执行顺序
在 Spring Boot 中,选择合适的初始化方式取决于你的具体需求和初始化逻辑的复杂程度。和适合早期的、简单的初始化操作,而和更适合在应用完全启动后执行的复杂逻辑。了解这些初始化方式的执行顺序和特点,能够帮助你在项目中做出最佳选择,确保应用的平稳启动。希望本文能帮助你更好地理解和应用 Spring Boot 中的初始化操作,让你的项目在启动过程中更加高效和可靠。如果你对 Spring Boot 还有其他问题或建议,欢迎在评论区交流。
2024-05-17 15:22:23
1134
1
原创 Spring 在业务场景使用方式(IOC实现策略模式、AOP实现拦截、Event解耦等)
通过以上示例,我们详细解析了 Spring 在业务中的常见应用场景和用法,包括使用 IoC 实现策略模式、AOP 实现日志切面、监听器实现业务异步解耦,以及使用 Spring Data JPA 进行数据访问等。这些功能和组件能够帮助我们简化开发、提高代码质量和可维护性,是 Java 开发中不可或缺的利器。希望本文能够帮助读者更好地理解和应用 Spring 框架,在实际项目中发挥其最大的作用。
2024-05-08 11:46:38
459
1
原创 Mysql性能优化:探秘索引失效问题和实践分析
对索引使用左匹配,是指like查询条件使用like '%xx'或会让索引失效。对索引使用函数,是指在查询条件中对索引字段使用mysql自带的函数进行计算会导致索引失效。对索引使用表达是,是指在查询条件中对索引字段进行计算会导致索引失效。对索引隐式转换,遇到字符串和数字进行比较时,mysql会将字符串转换为数字,索引在条件左侧为字符串。时,使用了Cast函数对索引字段转换,索引会导致索引失效。联合索引非最左匹配,在联合索引的使用中,需要遵循最左匹配原则,否则也是导致索引失效。
2024-03-06 17:49:45
830
1
原创 深入探讨Java线程池的最佳实践:配置、监控与避坑
在多线程编程中,使用线程池是一种常见的优化手段,可以有效管理和复用线程,提高系统的性能和稳定性。本文将深入探讨Java线程池的最佳实践,并介绍一些常见问题及解决方案。
2024-02-21 18:47:02
1550
原创 SpringBoot项目多数据源配置与MyBatis拦截器生效问题解析
原因就在于类 ,作用是自动配置 MyBatis 相关的组件,包括创建。实现了进行初始化操作,在实例化时注入了对象。通过跟踪代码发现,会在创建中创建实例,而这些自定义的拦截器会在创建实例的时候进行设置。其中注解表示容器中不存在某个指定类型或名称的 Bean 时,才会生效。所以在已经存在的实例情况之下并不会创建实例,也就解释了我们配置多数据源情况下自定义拦截器不生效的原因。所以解决办法就很简单了,在我们自定义的Mybatis配置类中注入自定义的拦截器,设置到当中;@Resource。
2024-01-24 08:45:00
1028
1
原创 探索经典排序算法:冒泡、选择、插入、归并、快速排序
它属于基本的排序算法,虽然简单,但在实际应用中通常不是最优的选择,因为其平均时间复杂度为O(n^2),其中n是数组的长度。分区(Partition):重新排列数组,将比基准元素小的元素放在基准元素的左边,将比基准元素大的元素放在基准元素的右边。逐个将未排序部分的元素插入已排序部分:从未排序部分取出一个元素,将其插入已排序部分的合适位置,使得已排序部分仍然保持有序。分为已排序部分和未排序部分:算法维护两个子数组,一个是已排序的部分,另一个是未排序的部分。合并操作:将已排序的子数组合并为一个更大的已排序数组。
2023-09-14 11:12:14
107
1
原创 内存消耗与性能瓶颈:优化后的数据导入功能如何提升系统效率
这个功能位于系统后台管理中,属于低频使用的功能。它主要用于在用户决定更换对接银行时,导入数据并更新银行账户等信息。操作步骤如下:先选择导入的数据条数(下拉选择,上面的需求就是想增加更大值的选项)。上传包含变更前后数据的Excel文件。程序执行导入操作,并将每条更新失败的数据及失败原因展示在页面列表中,并支持导出列表功能。
2023-07-26 16:07:14
167
1
原创 MyBatis、Spring JDBC 和 Spring Data JPA:选择哪种持久化框架?
MyBatis 是一个基于Java的持久层框架。它提供的持久层框架包括SQL Maps和Data Access Objects(DAO)。MyBatis是一个支持普通SQL查询存储过程和高级映射的优秀持久层框架。MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的XML或注解用于配置和原始映射,将接口和 Java 的POJO(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录每个MyBatis应用程序主要都是使用。
2023-04-14 14:57:15
3238
1
原创 XX系统无法对接,如何实现文件上传?- 通过RPA爬取数据并破解登录模拟接口实现文件回传
再三确认文件只有十几kb,以为这个hutool的http请求的工具类有什么问题,尝试用了httpclient,restTemplate,还从postman导出了java代码用Okhttp方式的请求,设置了请求header中的Content-type的类型都没有效果,最后重写了hutool的HttpRequst类,修改了表单请求对文件流的处理,为文件流设置Content-type为application/octet-stream。:发现识别出来的验证码的准确性不高,经常会多一些空格,符号什么的?
2023-04-03 20:18:18
390
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人