摘要:
https://2nm.me/ 阅读全文
摘要:
在日常业务开发中,经常会遇到对文件的类型进行校验。文件类型校验可以弱校验,即仅根据文件的后缀名进行类型校验。但是这种校验方式无法识别恶意更改文件后缀名的情况。因此也存在对文件类型进行强校验的方式,即读取文件的十六进制流,根据十六进制编码匹配文件类型魔数(Magic Number)进行判断。 1. 文 阅读全文
摘要:
同步双写 优点:业务逻辑简单。 缺点: 硬编码,有需要写入mysql的地方都需要添加写入ES的代码; 业务强耦合; 存在双写失败丢数据风险; 性能较差:本来mysql的性能不是很高,再加一个ES,系统的性能必然会下降。 双写失败风险,包括以下几种: 1) ES系统不可用; 2) 程序和ES之间的网络 阅读全文
摘要:
在前面几篇文章中,笔者介绍了 MyBatis 的运行流程,在此基础上简单介绍了手写 MyBatis 简易框架与自定义 MyBatis 插件的步骤,相信大家对于 MyBatis 框架的使用流程已经游刃有余了。然而,面对实际开发过程中大量的数据库表单,传统的 MyBatis 使用步骤已经显得繁琐不堪,本 阅读全文
摘要:
在前面的文章中,笔者详细介绍了 🔗MyBatis 框架的底层框架与运行流程,并且在理解运行流程的基础上手写了一个自己的 MyBatis 框架。看完前两篇文章后,相信读者对 MyBatis 的偏底层原理和执行流程已经有了自己的认知,并且对其在实际开发过程中使用步骤也已是轻车熟路。所谓实践是检验真理的 阅读全文
摘要:
在🔗上一篇文章中,我们由一个快速案例剖析了 MyBatis 的整体架构与整体运行流程,在本篇文章中笔者会根据 MyBatis 的运行流程手写一个自定义 MyBatis 简单框架,在实践中加深对 MyBatis 框架运行流程的理解。本文涉及到的项目代码可以在 GitHub 上下载: 🔗my-myb 阅读全文
摘要:
MyBatis 是轻量级的 Java 持久层中间件,完全基于 JDBC 实现持久化的数据访问,支持以 xml 和注解的形式进行配置,能灵活、简单地进行 SQL 映射,也提供了比 JDBC 更丰富的结果集,应用程序可以从中选择对自己的数据更友好的结果集。本文将从一个简单的快速案例出发,为读者剖析 My 阅读全文
摘要:
PageHelper是一种分页插件,下面介绍在实际业务的不同情况下使用需要注意的地方。 1. 依赖导入 <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version 阅读全文
摘要:
在程序开发中,经常会碰到各种专业术语,这里统一做一下解释,有遗漏或理解错误的恳请指正。 BO(Business Object)业务对象 主要作用是把业务逻辑封装为一个对象,这个对象可以包括一个或多个其他的对象。比如一份简历,有教育经历、工作经历、社会关系等。可以把教育经历对应一个 PO,工作经历对应 阅读全文
摘要:
并查集算法,也叫Union-Find算法,主要用于解决图论中的动态连通性问题。 Union-Find算法类 这里直接给出并查集算法类UnionFind.class,如下: /** * Union-Find 并查集算法 * @author Chiaki */ public class UnionFin 阅读全文