摘要: 在一般的应用开发过程中,合理的开发工作应当包含对相关功能的单元测试的编写,如何快速编写一个有效的单元测试有时也是一个值得考虑的问题。 Junit 测试 测试环境准备 在 Spring 项目中,可以使用 Junit 创建一个 test 的应用上下文,并执行对应的单元测试 比如,如果存在如下的服务类 U 阅读全文
posted @ 2024-11-23 18:37 FatalFlower 阅读(12) 评论(0) 推荐(0) 编辑
摘要: 前文 在某些场景下,使用 Spring 作为开发组件时,不可避免地需要使用到配置文件,然而,对于配置文件中的某些敏感数据(如密码等信息字段),如果使用明文的方式,则可能在一定程度上导致信息泄露。为此,需要一种有效的方式来对这些字段进行加密处理,当前主流的一种加密方式就是 Jasypt 基本使用 对于 阅读全文
posted @ 2024-07-07 17:01 FatalFlower 阅读(284) 评论(0) 推荐(1) 编辑
摘要: KMP 字符串搜索算法是 Knuth、Morris、Pratt 三位在类似的时间段内一起发明的一种字符串搜索算法,该算法的主要原理是利用待查找子串中的某些信息,在匹配失败时能够减少回退的步数 算法原理 假设现在有一个待搜索的字符串 ABABAC,如何利用现有的字符串实现在字符不匹配时尽可能向后调整搜 阅读全文
posted @ 2024-02-24 08:29 FatalFlower 阅读(37) 评论(0) 推荐(0) 编辑
摘要: 在一般的 Spring 应用中,如果底层数据库访问采用的是 MyBatis,那么在大多数情况下,只使用一个单独的数据源,Spring 的事务管理在大多数情况下都是有效的。然而,在一些复杂的业务场景下,如需要在某一时刻访问不同的数据库,由于 Spring 对于事务管理实现的方式,可能不能达到预期的效果 阅读全文
posted @ 2024-01-08 21:21 FatalFlower 阅读(1369) 评论(0) 推荐(2) 编辑
摘要: 一般来讲,在使用 MyBatis 进行数据库的访问时,通常会遇到需要更新数据的相关业务,在某些业务场景下,如果需要进行一批次的数据更新,可能性能不是特别理想。本文将简要介绍几种能够高效地处理批量更新数据的实现方式 单语句的批量更新 在某些业务场景下,可能更新的到的数据都在同一个表中,关联到的业务也是 阅读全文
posted @ 2023-12-13 21:22 FatalFlower 阅读(2282) 评论(0) 推荐(0) 编辑
摘要: 问题起因 Spring 的 JDBC 相关的依赖库已经提供了对 JDBC 类事务处理的统一解决方案,在正常情况下,我们只需要在需要添加事务的业务处理方法上加上 @Transactional 注解即可开启声明式的事务处理。这种方式在单线程的处理模式下都是可行的,这是因为 Spring 在对 @Tran 阅读全文
posted @ 2023-09-19 08:32 FatalFlower 阅读(691) 评论(0) 推荐(0) 编辑
摘要: 开窗函数 (Window Function)提供了行集之间的计算能力,在现代的主流关系型数据库中,基本都提供了相似的功能,这些功能在一些业务开发的过程中很有用,本文将简要介绍这些常用的开窗函数 ## ROW_NUMBER() `ROW_NUMBER()` 函数的使用语法如下: ``` sql ROW 阅读全文
posted @ 2023-08-13 18:47 FatalFlower 阅读(1426) 评论(0) 推荐(0) 编辑
摘要: 具体的 SQL 模板实现如下所示: ``` java import org.apache.ibatis.mapping.MappedStatement; import tk.mybatis.mapper.MapperException; import tk.mybatis.mapper.entity 阅读全文
posted @ 2023-05-22 09:45 FatalFlower 阅读(484) 评论(0) 推荐(0) 编辑
摘要: 概述 《设计模式》一书中对于 “模板方法模式” 的意图描述如下: 定义一个操作中的算法骨架,而将一些步骤延迟到子类中 一般在以下几种情况下使用模板方法模式: 一次性实现一个算法的不可变部分,并将可变的行为留给子类来实现 各个子类中的公共行为应当被提取出来并集中到一个公共父类中以避免重复代码(提炼父类 阅读全文
posted @ 2023-04-20 21:06 FatalFlower 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 概述 《设计模式》一书中对于 “策略模式” 的意图描述如下: 定义一系列算法,将它们一个个封装起来,并是他们可以相互替代 一般策略模式的 UML 图如下所示: 一般在以下几种情况中使用策略模式: 许多相关的类仅仅是行为有异。“策略” 提供了一种用多个行为中的一个行为来配置一个类的方法 需要使用一个算 阅读全文
posted @ 2023-04-16 21:14 FatalFlower 阅读(23) 评论(0) 推荐(0) 编辑