自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

偶尔记一下 - mybatis.io

没事看看 - MyBatis工具

  • 博客(347)
  • 资源 (7)
  • 论坛 (6)
  • 收藏
  • 关注

原创 方便的 Kubernetes API 参考文档

http://k8s.mybatis.tk关注过 K8s 的人可能都看过官方的 API 参考文档:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.13这个文档的形式如下图所示:如果你真正参考过这个文档,你会发现这个文档特别不好用,想要逐级查看属性信息时,经常在锚点之间跳转,无法从整体上看到完整的结构,非...

2019-02-24 19:30:15 3575 5

原创 《MyBatis 从入门到精通》

我在CSDN博客写了不少和MyBatis相关的博客,2015年时觉得自己写的太零散,不够系统全面,所以在GitBook创建了一本名为MyBatis最佳实践的开源电子书,当时写好了目录大纲,由于维护好几个开源项目,业余时间几乎都被占用,最终也只写了MyBatis Generator部分,也就是博客中的MyBatis Generator 详解。2016年3月份时,博文视点的孙奇俏编辑和我联系,然后就开始

2017-06-21 20:46:33 87132 61

原创 seata-spring-boot-starter 启动配置

2019年看seata时版本还是0.8,再次接触时已经1.4.2了。历史文章:Seata 分布式事务启动配置分析Seata 分布式事务功能测试(一)Seata 分布式事务功能测试(二)Seata 分布式事务功能测试(三)seata特殊的配置文件形式使得入手很容易蒙,最近看官方博客的部分文档发现可能有不少人都有类似的感觉,最主要的原因就是 registry 这个配置文件名字起的不好。如果改成 bootstrap 会更容易理解。seata支持非常多的配置和服务注册发现方式,想要使用zookee

2021-06-11 13:14:41 45 2

原创 VFS - 虚拟文件系统的加载和导出

再开始 VFS 具体内容前,先看看实现过程中踩到的两个坑。两个坑我博客2012年有一篇 Java解压缩zip - 解压缩多个文件或文件夹,后续工作中偶尔也会用到 ZIP 解压缩的功能,大多数都直接用的现场类库封装的方法。个别情况下需要基于纯内存(不从磁盘读取文件,压缩不写入磁盘)解压缩 ZIP 文件时也直接操作过 Java API。最近遇到一些坑,有些是很基础的内容,本以为自己可以随便玩这些API了,结果被自己坑到了,都是一些细节。如何关闭 Java 文件流我用 ZipOutputStream 导

2021-05-23 16:18:29 60 1

原创 VFS - 虚拟文件系统基本操作方法的封装

接前一篇 VFS - 代码生成器预览功能实现 ,上一篇讲到了 mkdirs 封装创建目录的方法,接下来先处理前文中的BUG、封装写入文件的基础方法,再扩展一对加载系统目录和导出到系统目录的方法,让VFS虚拟文件系统和真实操作系统真正交互起来。在开始新的内容之后我们先修正前一篇文章中的BUG。文件的 BUG在前一篇文章中,认为一个文件的 name 和 type 同时决定了唯一的一个文件,这个设计没有问题,但是经过在不同操作系统测试发现,同一个文件名只能在一个目录中出现一次,名字决定了唯一的一个文件,类型

2021-05-15 18:09:26 109

原创 VFS - 代码生成器预览功能实现

起因去年底计划1月份开源新版 mybatis-mapper 并发布 1.0 的正式版,整个项目的主要功能已经稳定,为了更方便开发人员使用,计划提供一个代码生成器,然后就把精力投入代码生成器的设计和实现,由于石家庄疫情和多方面的原因搁置。后来有时间之后就开始设计并实现最简单的代码生成器,代码生成器非常简单,功能很强大,这是一个和 MyBatis 没有直接关系的工具,因此不包含在 mybatis-mapper 项目中,mybatis-mapper项目中会包含一个可用的代码生成器 jar 包和模板示例文件,这

2021-05-13 23:08:08 4324 8

原创 Kubernetes Java 服务最小化镜像方案

本篇不是介绍如何把一个大的镜像如何变小,主要实现的是,如何把 Java 服务镜像变化的部分变的尽可能的小。方案依赖于 Kubernetes Pod 运行机制(纯Docker有兼容方案)。Java服务的镜像都很大,当遇到离线环境需要拷贝的时候,每次都需要传递几百G的镜像,拷贝频繁时影响更大。Java服务的镜像大主要在于基础运行环境,一个 openjdk 的镜像在 200M以上(jre环境更小,但是又限制),为了方便运维还会安装一些工具,最终可能会产生一个300M~500M左右的基础镜像。基础镜像的内.

2021-04-04 18:04:19 94

原创 PaaS 以及全套服务微服务搭建流程

这是一篇写的很早的文章,所以有个别内容没那么新,涵盖的内容非常的全,内容太多,可以用于参考。主要流程分为:Rancher PaaS 平台MySQL 安装、配置、数据导入RabbitMQ 安装、配置镜像(Harbor、ACR、SWR)服务服务部署、调试一、Rancher PaaS 平台搭建主要参考:Rancher HA 高可用安装步骤Kubernetes 最新版本安装过程和注意事项搭建过程分为以下几个主要步骤:Docker 安装配置kubectl 下载安装rke 下载

2021-04-02 12:11:47 163

原创 TOP命令展示匹配命令行的进程

参考文章:在Linux中如何使用top -c命令过滤基于进程名称列出的进程?将TOP命令的输出限制为特定的进程名称Show only one process with top on Linuxtop 命令中通过 top -p PID 可以展示指定进程的信息。使用上面命令时,还需要先得到进程的 PID,如果想要看多个相似命令的进程信息,会越来越麻烦。最简单的方式就是通过下面的命令获取指定(匹配)命令的进程信息:top -p `pidof [process name] | sed 's/ /,.

2021-03-11 16:31:24 138 1

原创 简单制作LOGO

本文参考: Design a simple text logo in 15 minutes with Google Fonts and Figma1. 灵感制作Logo可以先从一些专业网站寻找灵感,把自己想要的整体设计确认一下,有一个非常不错的网站,可以根据你的文字生成大量Logo的效果:比如,针对 PageHelper:通过挑选自己喜欢的设计,我找到一个参考:一朵花中的PageHelper。2. 素材素材分为两部分:图标字体配色方案2.1 图标使用 flaticon 来.

2021-02-22 09:35:59 254 3

原创 2020 年博客总结

2021年都过了4天了,晚上哄孩子睡觉时,突然想到好像刚刚才写过 2019年的博客总结,当时觉得2019年过的太快了,没想到2020年过去的更快。上一次总结时孩子才9个月,一晃就1周9个月了,再不珍惜时间就老了,再不陪孩子玩就不陪我玩了。2019年一共写了45篇博客,当时觉得不多,再和2020年一比,就越显的2020年少了,2020年写的字并不少,有很多可以作为一篇篇博客的内容写到了项目(mybatis-mapper/mapper gitee / GitHub 小范围测试中,计划在2021年1月份发布第一

2021-01-04 23:32:38 486 3

原创 Dubbo Spring Cloud 逆向分析服务注册事件变化的处理过程

TODO Dubbo Spring Cloud 事件处理(正向篇)Dubbo Spring Cloud 事件处理内容分为两篇,第一篇为 逆向篇,这篇介绍了如何从接收事件的方法逆向推出完整的事件处理过程,这个方法适合在具体代码遇到问题时,倒着把问题的处理过程理顺。逆向分析完整个流程后,再通过 正向篇 来看从头到尾的处理过程。起因原来用的 Spring Boot + Dubbo 开发架构,在架构中有一个特殊的功能用到了 NotifyListener 来监听指定接口变化的信息。现在要将架构升级为 Sp.

2020-11-25 15:18:52 283

原创 开发人员的 Chrome 翻译设置

开发人员可能会看一些英文的文档,在 Chrome 上通过右键【翻译中文】非常方便。开发人员看的网站通常会存在代码段,谷歌也会翻译这部分内容,这就导致代码格式乱了,而且翻译中文后反而看不懂了。如何避免代码被翻译呢?搜到了一篇文章 How can I tell Google Translate to not translate a section of a website?按照介绍,只需要给元素添加 class="notranslate",Chrome 翻译就会忽略添加这个样式的块。以 ES 文档为例

2020-09-17 17:09:23 833 3

原创 Docker 容器中添加字体

在容器中转PDF时,可能是 JasperReport,可能是 Aspose,也可能是自己用 pdfbox, itex 之类的库。在 Windows 上可能运行的没有问题,但是切换到 Linux,到容器时,字体找不到就会出现乱码。解决办法很简单。复制需要用的字体到容器中即可,具体操作方法如下:FROM 你的基础镜像COPY windows /usr/share/fonts/windowsRUN cd /usr/share/fonts/windows && chmod 755 * &a

2020-09-12 15:02:25 2098 10

原创 K8s 简单集成 SkyWalking

本文记录最简单的一个过程要点。搭建 ES7参考这里:Install Elasticsearch with Docker搭建单节点时需要注意配置环境变量:discovery.type=single-node配置本地存储(例如 hostPath方式)需要注意配置权限:mkdir esdatadirchmod g+rwx esdatadirchgrp 0 esdatadir搭建 skywalking-oap-server 服务官方镜像:apache/skywalking-oap-server:

2020-08-07 14:10:50 3155 3

原创 数学思维和程序员思维

记得刚掌握一种编程语言时,看到数学题就会想着这道题应该怎么通过编程来计算,代码也算一种解题方法。这个时期就像是拿着锤子眼里都是钉子,总想用一种思维去解决所有的问题。今天因为某个东西,遇到了一道题,为了不泄露题的来源,这里对题进行简单改动。在那遥远的 S1 上林大区,有一个半径为10m的半球形水池盛满了夏季肮脏的雨水,现在想把水池清理干净,如果将雨水从上方全抽出来需要做的功为W,那么当做功 W/2 时抽了百分之多少雨水?看到这题第一眼,就意识到这是一道典型的物理题,解题方法需要用到数学中的微积分。百度

2020-07-29 00:13:57 1648

原创 基于 k8s 的 frp 内网穿透配置

环境测试环境:私有云 Rancher(k8s)集群。正式环境:公有云 Rancher(k8s)集群。测试环境本来可以直接通过 443 端口访问 https,最近端口被封,又不想使用其他端口,因此想通过正式环境将测试环境发布到外网。frpfrp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp 协议,为 http 和 https 应用协议提供了额外的能力,且尝试性支持了点对点穿透。关于 frp 的配置和用法,看 官方文档。为了在 k8s 使用,需要制作 Docker 镜

2020-07-26 00:32:50 947 2

原创 MySQL 分区表简单操作记录

详细的介绍可以看:官方文档 - partitioning。分区限制一个表最多1024个分区分区字段中的主键、唯一索引必须包含分区字段分区表无法使用外键约束应用目前有一个工作流的操作日志表已经解决2000W的数据量,查询速度非常的慢,为了解决查询的问题,对此表进行分区操作。分区时建议创建一个 pnull 的空分区和一个 pmax 的最大值分区,pnull 可以在查询被包含进去时数据量很小或者0使得速度更快,pmax可以防止数据超出分区范围后仍然能很好的保留,并且方便后续的分区拆分。如果不能

2020-07-10 12:23:01 1471 1

原创 Harbor 无法下载镜像的一个原因

问题描述无法从 harbor 通过 docker pull 下载镜像。这可能是一个个例,只有特定网络情况下才会发生的问题。由于我这种网络情况下发生了多次,因此有必要记录下来。环境Harbor 通过 https://IP 提供服务,使用自签名的证书。Harbor 有两个网卡,分别是 10.10.1/24 和 10.10.10/24,HTTPS 服务证书指定的 10.10.10/24 的 IP。k8s 新的几个集群都在 10.10.0/24 网段。这几个新的集群都无法从 Harbor 下载镜像。

2020-06-15 12:12:49 1098 1

原创 CentOS 配置 DNS

参考:How to set DNS in CentOS/RHEL 7 & prevent NetworkManager from overwriting /etc/resolv.conf?配置 DNS 时可以直接在网卡上进行配置,例如在 /etc/sysconfig/network-scripts/eth0 中添加:DNS1=x.x.x.1DNS2=x.x.x.2DNS3=x.x.x.3DOMAIN='xxx.com'网卡有了配置后,NetworkManager 会自动将 DNS .

2020-06-12 16:10:58 390

原创 内部 CA 证书管理

内部 CA 证书管理生成 CA 证书# 生成 KEYopenssl genrsa -out ca.key 4096# 生成证书openssl req -x509 -new -nodes -sha512 -days 3650 \ -subj "/C=CN/ST=省/L=市/O=组织/OU=组织单位/CN=常用名(或域名)" \ -key ca.key \ -out ca.crt内部人员需要把该 ca.crt 证书添加到受信任的根证书中,Windows 运行输入 certm

2020-05-28 09:55:09 1310

原创 Helm 执行资源的顺序是什么?

我一直很好奇 “Helm 执行资源的顺序是什么?”单纯看 Chart 里面的内容完全看不出来,例如:wordpress直到今天才去搜了搜,发现下面的内容:helm-install-in-certain-order通过上面这篇内容,找到了 Helm2 和 Helm3 的执行和卸载顺序:Helm2: kind_sorter.goHelm3: kind_sorter.go在 Helm3 中的执行顺序定义代码如下:// InstallOrder is the order in wh

2020-05-26 12:35:45 1829

原创 CentOS Linux 内核升级

参考:https://www.kernel.org/http://elrepo.org/tiki/tiki-index.phphttps://www.lijiaocn.com/%E6%8A%80%E5%B7%A7/2019/02/25/centos-kernel-upgrade.htmlhttps://www.cnblogs.com/anliven/p/7944842.html准...

2020-04-27 09:44:26 1369

原创 容器启动失败 ERROR: for log Cannot start service log: OCI runtime create failed: container_linux.go:346

完整错误信息:ERROR: for log Cannot start service log: OCI runtime create failed: container_linux.go:346: starting container process caused “process_linux.go:319: getting the final child’s pid from pipe ca...

2020-04-25 00:00:45 11930

原创 通用 Mapper 进阶实例:为什么好久都没更新了?

写篇博客关于通用 Mapper,通用 Service 方法。可以简单实现同级列表数据的上下拖拽改变顺序。为什么很久没更新?核心已经很完善了,扩展也很容易。实际上我还想精简方法,不想增加过多的方法,有需要的自己扩展。...

2020-03-16 22:40:58 7238 12

原创 MySQL 批量修改表和字段

MySQL 的 information_schema 数据库中包含了大量的元数据,通过这些数据可以方便的获取表和字段的信息,通过组合这些信息可以生成操作表和字段的 SQL。本文只是为了方便自己的记录。由于发现系统多个数据库使用的字符集和排序方式有误,因此要修改错误的这部分表,由于修改表无法直接影响 char, varchar, text 等字符串类型的值,因此这部分字段还需要特殊修改。又因为数...

2020-02-14 14:59:47 1445

原创 MySQL JSON 类型用法

MySQL JSON 类型用法存取示例直接使用 通用 Mapper1. 数据库存取使用 MyBatis 操作数据库,针对 JSON 类型字段,提供一个类型处理器用于数据库存取时的数据转换。1.1 类型处理器@MappedTypes({Map.class, JsonObject.class, JsonArray.class, JsonPojo.class})public class ...

2020-02-13 18:23:44 2061

原创 企业 Maven 依赖管理层次结构设计 - 附录

Chat 文章地址: 企业 Maven 依赖管理层次结构设计由于文章涉及内容太多,不想在文章中包含太多基础的内容,但是对于了解不深的人来说,没有这些内容也不容易真正掌握,因此在博客上通过本文附加一些额外的内容来完善上述 Chat。1. 搭建 Nexus 私服下载地址https://www.sonatype.com/download-oss-sonatypehttps://help.s...

2020-01-30 17:15:20 1323

原创 利用 MySQL 复制聚合多个库到同一个数据库

由于微服务分库导致无法跨库(忽略 db_name.table_name 方式)统计查询,因此利用 MySQL 主从复制的方式,将主服务器上的多个数据库同步到从服务器上的单个数据库上,从库设置只读,仅用于统计查询。假设主服务器上有以下数据库:db_a:table_a1table_a2db_b:table_b1db_ctable_c1table_c2下面是简要...

2020-01-19 14:37:54 4754 7

原创 记一次内存溢出排查过程

有一个服务经常会停止服务,一开始没特别注意,出问题就重新部署。后来有一次重启前看了眼 GC,发现一直在 Full GC:[149644.445s][info][gc,start ] GC(2210) Pause Full (Allocation Failure)[149644.447s][info][gc,phases,start] GC(2210) Phase 1: Mark ...

2020-01-17 17:29:45 5519 2

原创 Maven Nexus 2020 大坑紧急扩散:The Central Repository is Moving to HTTPS

如果你在用 Maven 的 Nexus,用 2.x 的低版本,或者 3.x 的高版本,都有可能遇到突然无法通过 Nexus 代理下载依赖的问题。问题症状In Service - Remote Automatically Blocked and Unavailable原因如下:https://support.sonatype.com/hc/en-us/articles/36004128...

2020-01-17 14:28:44 2138

原创 2019 年博客总结

这一年的博客才写了两页多一点,总是能看到 2018 年博客总结,总觉得还没过多久,没想到这么快又一年了。去年写总结时似乎还精力充沛,如今想在业余时间写个博客,更新下开源项目,都得找孩子睡觉的时间,孩子小的时候带着挺累,孩子睡的时候我也想睡。2019 年,都是工作中用到的各种工具,从下文的列表来看,集中在了 Docker,Kubernetes,Rancher,MySQL 等等。唯一一篇特别深入的内...

2020-01-01 16:00:23 1440 9

原创 离线导出和导入 Docker 镜像到仓库

参考 Rancher 离线安装脚本,对脚本进行简化。功能:通过脚本可以从一个镜像仓库(例如 harbor)导出,然后导入到另一个镜像仓库。首先需要整理要导出的镜像列表,写入 docker-images.txt 中,示例如下:10.10.10.233/develop/assets:20191216190210.10.10.233/develop/announcement-service:...

2019-12-19 11:02:27 567

原创 MySQL 备份和还原

针对 linux 上的 MySQL 进行备份还原。备份脚本 mysql-bak.shdb=$1if [ -z $db ] then echo '错误: 清输入表名!' echo '用法: ./mysql-bak.sh db_name' exit 1fiD=$(date +%Y%m%d%H%M)DUMP=/data/mysql-bak/${db}-${D}.tgzecho...

2019-12-06 12:24:55 1196

原创 Rancher 两种 Registry 镜像库的区别和用法

Rancher 有两种配置 Registry 镜像库的地方,这两种方式起的作用不同。Rke 配置集群时设置参考:https://rancher.com/docs/rke/latest/en/config-options/private-registries/配置多个RKE支持在中配置多个私有Docker镜像库的功能cluster.yml。通过传递您的镜像库和凭据,它允许节点从这些私有镜...

2019-11-03 11:19:04 4888 2

原创 Harbor Https 私有证书配置注意事项

官方文档:https://github.com/goharbor/harbor/blob/master/docs/configure_https.md想要访问远程的 Harbor,就需要配置 HTTPS 访问。配置过程中,Harbor 服务器和 Docker 客户端都需要进行相应的配置才能让两者互通。首先按照官方文档生成证书(证书名称无所谓)。使用 IP 访问的情况下,所有域名都可以使用该...

2019-11-02 15:40:48 2672

原创 Dubbo 接口异常处理逻辑

API 接口中抛出的异常类型,有一系列的规则,代码在 ExceptionFilter 的 onResponse 中。1. 如果是受检异常(非Runtime)就直接抛出这是因为如果是受检异常,接口定义的 throws 中需要涵盖,调用端需要捕获该异常,该异常一定能访问到。2. RuntimeException 并且接口 throws 时这种情况下,接口指明抛出的异常,调用端也能获取该异常,...

2019-10-30 17:51:10 1821

原创 Dubbo, Hessian 序列化注意事项

最近遇到一个问题,A 服务调用 B 服务时,返回值反序列化时,POJO对象变成了Map类型。在B服务单独测试的时候一直还原不了,在 A 服务进行测试的时候,跟到序列化数据时才看到原因。原因很简单A 服务的接口方法返回的结果是一个接口,接口的实现不在 A 服务的 API 包中,因此在 B 服务找不到该接口真正的实现类,在 B 服务调用接口返回结果反序列化找不到具体的类型时,就会以 Map 类型进...

2019-10-28 19:26:31 2137

原创 Java 操作 office 的辅助工具

当使用 docx4j, poi等工具处理 office 文件时,如果想要实现复杂的功能,使用明面上的简单接口已经很难实现。这个时候如果配合一个工具,按照 XML 结构递归处理,就能实现很多强大的功能。这里说的工具就是 **Open XML SDK 2.5 for Microsoft Office **:下载地址:https://www.microsoft.com/en-us/download...

2019-10-23 16:33:09 1211

原创 Jacob 使用细节优化

Jacob 可以用来做很多事,我这里主要用到了通过 office 转 pdf 的功能。在使用过程中,偶尔会出现(1%的概率)进程异常,出现弹框等问题导致程序假死。为了解决类似问题,在使用过程中,可以从以下细节进行优化。1. 只读模式使用 office 时,如果文件被占用,在打开始会弹框进行提示:出现该弹窗后会导致程序卡住不动。如果改为只读模式,就不存在这个问题,代码如下:注意上面...

2019-10-20 23:46:40 1362 3

Excel通用读取模块源码和JAR

由于平时经常需要处理读取Excel,所以写了这样一个小模块来处理读取Excel... 关于写出Excel的功能,以后再写一个通用的。

2012-03-17

Excel通用导出excel文件

Excel 通用导出 excel 文件

2013-02-25

vote 投票功能 纯html

附件,相关文章介绍,查看本人CSDN博客:div+css+jQuery简单实现投票功能..

2012-08-15

SQL转Java代码小工具

可以将多行SQL转换为程序可用的字符串。详情看博客相关文章。

2013-06-08

读取Excel的POI jar包

读取Excel的必备JAR包,可以从poi官方下载。

2012-03-17

w3school完整版-最新编译-2011-10-7

w3school完整版-最新编译-2011-10-7 和网站上内容一样,方便查看。

2011-10-07

jp.gr.java_conf.ussiy.app.propedit_6.0.3.zip

Eclipse属性资源文件插件。

2016-05-12

isea533的留言板

发表于 2020-01-02 最后回复 2020-01-02

由于本人最近几个月活跃度不够,申请取消博客准专家

发表于 2016-08-10 最后回复 2019-07-03

JAVA-List对象某个字段去重

发表于 2012-10-29 最后回复 2016-06-24

[BUG]CSDN客户端BUG

发表于 2015-06-19 最后回复 2015-06-20

CSDN封goagent了?

发表于 2013-09-16 最后回复 2015-06-19

JAR如何独立运行

发表于 2012-11-09 最后回复 2012-11-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除