![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
干货分享
文章平均质量分 66
航迹者
你好,我是发哥,一位专注于编程开发的技术爱好者,我致力于通过博客CSDN和公众号《航迹者》,与广大读者分享我的技术见解和开发经验。联系我:CSDN、公众号《航迹者》,wx:AiHangjizhe。我的专业领域涵盖了Java、SpringBoot框架、数据库管理、架构设计、中间件等关键技术。我喜欢探索新技术、解决复杂问题,并将我的实践经验转化为易于理解和实施的指南。
展开
-
Java通用解析Excel文件数据库配置化自动批量存储数据库
easy Excel 通用解析 excel 方案。数据库配置解析规则,可配置解析sheet名称(包含、正则),配置解析表头还是index索引方式。表头名称支持多个key匹配一个表头。自动格式转换,支持时间,字符串等。配置入库规则,设置数据库插入语句,可自定义,可实现ON DUPLICATE KEY或者replace等高级功能,通过index对应索引即可。配置Kafka-topic主题配置自定义过滤Java代码配置自定义业务boMap。原创 2023-05-17 20:28:17 · 395 阅读 · 0 评论 -
postgresql循环执行sql,navicate执行循环sql语句,循环插入数据
pg循环执行sql原创 2023-02-25 22:40:43 · 2244 阅读 · 0 评论 -
mysql统计库所有表的数据量磁盘容量
mysql统计库所有表的数据量磁盘容量原创 2023-02-07 15:34:52 · 167 阅读 · 0 评论 -
nginx自定义请求头装载客户端真实IP
客户端访问网关,然后到微服务。网关获取到的一直是桥接网络的IP,无法正常获取到客户端真正的IP。最终通过在客户端区域网中搭建一个nginx,获取到真实IP后,转发到网关,然后到微服务模块。解决微服务 网关、子模块 获取不到真实客户端IP的情况。原创 2023-01-12 18:03:09 · 654 阅读 · 0 评论 -
mac、window安装gradle环境
Mac 安装 gradle, window安装大同小异。本文采用压缩包,系统配置环境变量的方式安装。也可以直接安装程序包,自动配置环境变量。原创 2023-01-04 09:37:37 · 476 阅读 · 0 评论 -
mybatis异常 :元素内容必须由格式正确的字符数据或标记组成。mapper-xml:SQL dialect is not configured. Snowflake matches best.
mapper -xml -idea 提示 SQL dialect is not configured. Snowflake matches best.springboot 启动后,mybatis 异常:元素内容必须由格式正确的字符数据或标记组成;[CDATA[ 被包裹的sql(也就是自定义sql) ]]>自定义 sql 异常。原创 2022-12-16 11:31:36 · 270 阅读 · 0 评论 -
Java转换坐标系,GPS(WGS84)、百度(BD-09)、高德(GCJ-02)互转,一文搞懂坐标系、坐标转换
Java实现GPS坐标、火星坐标、百度坐标 互相转换原创 2022-08-31 14:20:16 · 8894 阅读 · 7 评论 -
clickhouse集群部署和分布式引擎实战
单机性能怪兽联机分析(OLAP)的数据库ClickHouse原创 2022-07-13 18:29:39 · 1289 阅读 · 0 评论 -
postgresql创建只读用户
postgresql创建只读用户和How To Drop A Postgres Role/User With privileges原创 2022-04-27 12:31:52 · 4229 阅读 · 2 评论 -
SpringBoot集成SpringCache
最近项目中开发测试中,总监对我们开发人员提出了一个疑问,服务器也给你们加了,怎么我访问还是很慢!我以此开始进入优化之路,无法自拔.前言:做过开发的程序员都是,程序的瓶颈在于数据库,数据库是需要磁盘IO,我们也知道内存的速度远远快于磁盘的.当访问的数据是相同和重复调用的,一次又一次的请求数据库或者远程服务,导致大量时间耗费在数据库查询或远程方法访问上,如果同时大量请求过来,也会导致服务的的宕机等不可避免的问题.导致性能的恶化,这边是数据缓存要解决的问题.缓存数据库:提到缓存数据库,当然少不原创 2021-05-25 22:25:56 · 296 阅读 · 2 评论 -
docker安装zookeeper3.6.2
1、安装镜像docker pull zookeeper:3.6.22、启动zkdocker run --privileged=true -d --name zookeeper -p 2181:2181 \-v /home/workspace/zookeeper/data:/data \-v /home/workspace/zookeeper/logs:/datalog \-d zookeeper:3.6.23、进入到zk镜像汇总docker exec -it z...原创 2021-03-18 17:44:25 · 514 阅读 · 0 评论 -
springboot自动校验@NotBlank@NotNull@NotEmpty(2.4有小坑)
controller 实体类,参数 自动验证1、依赖问题:查看搭建的SpringBoot项目中 @NotEmpty 是否可以引用,查询资料发现从SpringBoot 2.3.0之后放弃了默认对javax.validation 的支持。 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spri...原创 2021-03-17 14:24:19 · 5389 阅读 · 2 评论 -
mybatis和spring整合,xml和注解方式实战
mybatis和spring的整合是mybatis开发团队主动开发一套集成框架,方便与spring整合,包括后面的mybatis与springboot整合!本章将会以简略的步骤告诉你如何安装和配置 MyBatis-Spring,并构建一个简单的具备事务管理功能的数据访问应用程序。1、什么是 MyBatis-Spring?MyBatis-Spring 会帮助你将 MyBatis 代码无缝地整合到 Spring 中。它将允许 MyBatis 参与到 Spring 的事务管理之中,创建映射器 mapp原创 2021-03-12 18:20:12 · 740 阅读 · 0 评论 -
Elasticsearch7.6 window环境集群部署、集群认证及使用
Elasticsearch7.6 集群部署、集群认证及使用window版本测试部署,centos使用docker-compose部署,springboot连接使用,集群配置ssl和CA证书配置 配置参考 Elasticsearch的一些概念和配置参数说明Elasticsearch集群内部配置TLS加密通信及身份验证。具体可参考我的csdn博客:https://blog.csdn.net/qq_42390636/article/details/114645795window 环境原创 2021-03-10 20:54:03 · 293 阅读 · 0 评论 -
elasticsearch7.x配置文件参数说明6和7的对比介绍,常用配置模板
一、集群的一些概念集群: 一个集群cluster由一个或者多个节点组成,具有相同的cluster.name,协同工作,分项数据和负载。当有新的节点加入或者删除了一个节点时,集群回感知到并能够平衡数据。ElasticSearch中可以监控很多信息,有一个最重要的就是集群健康。集群健康有三个状态:green(所有主要分片和复制分片都可用),yellow(所有主要分片可用,但不是所有复制分片都可用),red(不是所有的主要分片都可用)。节点: 一个节点node就是一个ElasticSearch的实例。 集原创 2021-03-10 20:37:31 · 2083 阅读 · 1 评论 -
JavaAgent实现修改运行字节码获取线程执行时间
Java生态中有一些非常规的技术,它们能达到一些特别的效果。这些技术的实现原理不去深究的话一般并不是广为人知。这种技术通常被称为黑科技。而这些黑科技中的绝大部分底层都是通过JVMTI实现的。深入了解文章最下面有解释!黑科技举例:对class文件加密、应用性能监控(APM)、产品运行时错误监测及调试、JAVA程序的调试(debug)、JAVA程序的诊断(profile)、热加载。当然:当今的许多开源工具尤其是监控和诊断工具,很多都是基于Java Agent来实现的,如最近阿里刚开源的Arthas。原创 2021-03-10 09:08:13 · 424 阅读 · 1 评论 -
mybatis入门demo搭建MySQL的maven项目
1、mybatis是什么MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。官方中文文档:https://mybatis.org/mybatis-3/zh/index.html2、入门2.1、了解mybat原创 2021-03-09 15:30:25 · 189 阅读 · 3 评论 -
没想到枚举Enum类还能实现接口!教你玩转Java枚举Enum
枚举是什么?枚举是一种特殊的数据类型,预先定义一组常量(对象),并且必须为其赋值。Java 枚举类型的基本想法非常简单:这些类通过共有的静态final域为每个枚举常量导出一个实例。枚举类型没有可以访问的构造器,所以它是真的final类。客户端不能创建枚举类型的实例,也不能对它进行扩展,因此不存实例,而只存在声明过程的枚举常量。也就是枚举类型是实例受控的。它们是单例(Singleton)的范型化,本质上是单元素的枚举。枚举使代码更易拓展和不一定代码减少,对比见下:我们使用12...原创 2021-03-09 08:53:53 · 3982 阅读 · 0 评论 -
再也不怕面试官问我Java浮点数运算精度问题了!BigDecimal如何使用?
在Java中使用浮点数进行运算时会发生精度丢失的问题。先看实例:我们想要的结果是:v的值为6.2;(d3-d2)==(d2-d1)为true;为什么Java中小数精度会丢失?大家都应该都知道电脑的底层就是二进制吧,所有的操作最终都是在二进制中进行的,内存中只有0和1;不知道的见 我的上一篇 彻底搞懂二进制的文章!知道怎么转化和计算的,记住一个核心:二进制表示的小数是精确的而不是确切的1、小数的二进制转化:例:0.7的二进制为:0.7 * 2 = 1.4 取.原创 2021-03-07 23:46:06 · 245 阅读 · 0 评论 -
彻底搞懂二进制、进制换算如此简单!十进制转化二进制,二进制转化十进制
什么是二进制?现代的计算机和依赖计算机的设备里都用到二进制。二进制是以2为基数,用两个不同的符号0(代表零)和1(代表一)来表示。通俗的理解就是:二进制是计算机所能理解的数,所有都是建立在2进制之上的,它只有0和1。数字都有位数,那么常见的字节,位,兆等如何换算呢?位和字节及常见存储单位常见单位有:位:bit 、小b、 比特字节:Bite、大B兆:MBGB、TB、PB、EB、ZB、YB、BB、NB单位换算:字节和比特位换算:1 Byte(B) = 8 bi原创 2021-03-07 23:42:11 · 2055 阅读 · 0 评论 -
如何使用-markdown编辑器
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar原创 2021-03-07 23:38:24 · 96 阅读 · 0 评论 -
超级码力在线编程大赛初赛 第3场
A、最大公倍数 是一个结论题吧。 当 bbb b b bbbb 是奇数的时候,那么答案肯定是 b∗(b−1)∗(b−2)b∗(b−1)∗(b−2)b∗(b−1)∗(b−2) ...原创 2020-09-07 21:13:38 · 135 阅读 · 0 评论 -
UVA-10285
题意: 给一个R*C大小的int型矩阵,起点终点任意,每次只能朝一个方向(上下左右均可,不能斜着走)走一步,且只能从更大的数走向更小的数,求最长路径。 题解: 记忆化DP。DP[i][j]表示从(i,j)出发所能走的最长路径,则状态转移方程可描述如下:对于上下左右4个方向,如果走得通的话,则选择能走的最远的一个方向走。 #include...原创 2020-09-07 21:11:42 · 107 阅读 · 0 评论 -
Linq 下的扩展方法太少了,您期待的 MoreLinq 来啦
一:背景 1. 讲故事 前几天看同事在用 linq 给内存中的两个 model 做左连接,用过的朋友都知道,你一定少不了一个叫做 DefaultIfEmpty 函数,这玩意吧,本来很流畅的 from...in...join, 突然搞进来这么一个函数,真的是恶心他妈给恶心开门,恶心到家了,简化后的代码如下: class User { public int UserID { get; set; } public string Email { g...原创 2020-09-07 21:09:36 · 197 阅读 · 0 评论 -
不支持原子性的 Redis 事务也叫事务吗?
文章收录在 GitHub JavaKeeper ,N线互联网开发必备技能兵器谱 假设现在有这样一个业务,用户获取的某些数据来自第三方接口信息,为避免频繁请求第三方接口,我们往往会加一层缓存,缓存肯定要有时效性,假设我们要存储的结构是 hash(没有String的'SET anotherkey "will expire in a minute" EX 60'这种原子操作),我们既要批量去放入缓存,又要保证每个 key 都加上过期时间(以防 key 永不过期),这时候事务操...原创 2020-09-07 21:07:00 · 239 阅读 · 0 评论 -
Prometheus监控神器-服务发现篇
本章节讲解服务发现与Relabelling的机制与范例。 通过服务发现的方式,我们可以在不重启Prometheus服务的情况下动态的发现需要监控的Target实例信息。 如上图所示,对于线上环境我们可能会划分为:dev, stage, prod不同的集群。每一个集群运行多个主机节点,每个服务器节点上运行一个Node Exporter实例。Node Exporter实例会自动注册到Consul中,而Prometheus则根据Consul返回的Node Exporter实例信息...原创 2020-09-07 21:05:19 · 1264 阅读 · 0 评论 -
【JAVA】简单的斗地主
发牌、看牌 需求: 斗地主中实现发牌和看牌 public class PokerDemo { public static void main(String[] args) { //创建一个空牌盒,ArrayList实现 ArrayList<String> array = new ArrayList<String>(); <span class="token ...原创 2020-09-07 14:27:55 · 116 阅读 · 0 评论 -
【Azure DevOps系列】Azure DevOps构建并发布Nuget程序包
在Azure DevOps中,管道可以用来构建解决方案,O(∩_∩)O哈哈~快万能了,本章主要介绍如何创建Nuget包并且将其发布到Nuget服务器的过程。 前面我创建了一个非常简单的类库,这边我不做过多叙述,接下来我们需要进行编辑csproj文件,当我们创建Nuget包时,我们将使用dotnet pack命令。这于传统的Nuget cli稍微有点不同,在传统的Nuget CLI中,我们创建nuspec文件并针对nuspec运行nuget pack。dotnet pack命令将从csproj创建...原创 2020-09-07 11:01:55 · 355 阅读 · 0 评论 -
自己作图分析分布式技术架构演化的常用套路
目录 背景 1、单机架构 2、应用服务与数据服务分离 3、应用服务器集群架构 3.1 应用服务器集群架构下的Session管理 4、数据库读写分离 5、利用缓存技术进行加速 6、分布式数据库系统与分布式文件系统 7、NoSQL数据库作为补充 8、使用搜索引擎 9. 分布式服务 9.1 微服务 分布式架构设计常用的中间件技术 背景 ...转载 2020-09-07 11:00:30 · 123 阅读 · 0 评论