自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 收藏
  • 关注

原创 文章格式混乱问题

博客的文章是不断用juejin同步过来的 博客的格式混乱 原文章在ObjectNotNil 的个人主页 - 动态 - 掘金

2024-01-03 21:09:02 750

原创 浅谈Spring Framework中的设计模式,构建极简的IOC容器实战。

theme: vuepresshighlight: xcodeSpring Framework简单介绍Spring 是面向 Bean 编程的 Java 应用程序框架(BOP: Bean Oriented Programming)。Bean 在 Spring 中才是真正的主角。Bean 在 Spring 中作用就像 Object 对 OOP 的意义一样,没有对象的概念就像没有面向对象...

2024-04-05 21:50:23 683

原创 2023年一年经验的码农工作总结,经历有点魔幻。

theme: vuepress简述光阴似箭,2023 年一眨眼就过去了。第一次做年度工作总结(Abnormal),就浅浅地记录一下 2023 在码场搬砖的一年。现在已经是三月了,写去年的年终总结可能是有点“不合时令”了。哈哈,文章也是要讲究一个季节时令。一切都得从考研说起2022 年我只工作了半年(其实我从 2022 年 1 月就开始实习了,后来因为 Covid-19 gap ...

2024-03-17 16:07:11 673

原创 开发一款Typora自定义图片上传命令行工具,上传到你自己的图床!

highlight: xcodetheme: vuepress为什么要开发这款工具?Typora 是一款 IT 界常用的 Markdown 笔记软件,它有强大的 Markdown 语法功能。同时它也可以粘贴图片、音频、视频等媒体文件。通常,从剪切板粘贴的图片都会默认保存到本地的 assets 同级目录中,文件名称为截图工具生成的名称。保存在本地虽然说可以长时间保存,但是如果...

2024-02-12 14:59:18 892

原创 [Go数据结构与算法]3. 二叉树的结构与实现

highlight: xcodetheme: vuepress二叉树的定义二叉树是一种常见的数据结构,区别于一般的线性表,它有一个节点保存了指向其他两个节点的指针。对于它指向的两个节点,同时也保存了指向了其他两个节点的指针。二叉树节点的定义Val 字段保存了数据,Left 和 Right 字段分别表示指向根节点的左右子节点的指针go// 二叉树节点 type Tr...

2024-02-11 22:25:59 356

原创 [Go数据结构与算法]2. 栈与队列的结构与实现

theme: vuepresshighlight: xcode栈的定义栈是一种基于线性表实现的数据结构,特性是先进后出。先进入栈的元素后出来。结构体定义先定义栈的接口 Stack:```go// 栈的接口 type Stack[T comparable] interface { // 判空 IsEmpty() bool // 返回大小 Siz...

2024-01-21 18:18:05 889

原创 [Go数据结构与算法]1. 线性表的结构与实现(基于泛型实现),码农一定要学好算法。...

highlight: xcodetheme: vuepress前言笔者发现关于 Go 语言方面的数据结构算法教程十分稀少,包括书籍和视频还有文章,所以决定出一系列关于 Go 语言实现的数据结构算法教程。本教程基于 Go SDK 1.20 还有 1.18 版本集成进来的新特性,例如泛型编程等。预计会出 8~10 篇文章,不间断更新。 数组列表的定义Go 语言内置的切片其实就是...

2024-01-20 23:26:07 817

原创 Webstorm无法识别Vite构建的工程的@别名符号解决方案——偷梁换柱骚操作。

问题简述在 2022.1 版本 Webstorm IDE 里面,创建好一个 Vite 工程之后,IDE 会提示 Cannot resolve xxx。意思就是说无法解析 @ 符号表示的路径。问题分析可能是版本比较老旧的原因,新版的 2023 就没有这个问题,因为它自身集成了 Vite 官方的语法插件。旧版的只是自己手动下载了一个第三方的 Vite Integrated 插件,可能语...

2024-01-01 10:03:22 1142

原创 使用Wails构建跨平台GUI程序快速入门,Electron的不错平替方案。

theme: juejinhighlight: xcodeWails简介Wails 是一个能让你使用 Go 和 Web 技术栈构建桌面应用程序的项目。你可能听说过 Electron,这是 Github 开源的一个跨平台桌面应用程序开发的解决方案。像我们熟知的 VS Code、Typora 都是使用 Electron 开发的,界面部门使用 Web 技术栈实现,所以你会感觉跟使用浏...

2023-12-27 22:37:12 1313

原创 使用备忘录模式来优化判断数据是否发生修改,堆屎也是一门艺术!

场景复现在后台管理系统的 CRUD 开发当中,免不了需要校验表单的操作。比如,校验表单的参数是否合法,当然,很多组件库的表单组件都支持表单校验,码农们只需要写好校验规则即可。今天遇到的需求场景就是在编辑一条表格中的数据的时候要判断用户是否修改了表单的数据,如果没有,那么就提示没有发生修改,无法提交! 如果用户修改了数据才可以提交。这时候你可能会想到拷贝一份表单的备份数据,然后在提交...

2023-12-24 22:08:57 1132

原创 Element Plus表单调用resetFields方法失效解决方案,论nextTick函数的重要性!

场景复现在我们日常 Vue3 开发当中,总是会离不开 Element UI 组件库,组件库中还是得属表单和表格的使用频率最高。比如,后台管理系统中,会大量地使用表格和表单。而且,我们通常都会在开发 CRUD 接口的时候复用同一个表单和对话框来实现查看详情、新增数据、修改数据的效果,这样可以大大减少冗余视图结构代码,提高代码复用性。具体一点讲,在点击新增按钮的时候,会弹出对话框显示添加数...

2023-12-21 23:28:37 688 1

原创 Node Exporter源码分析以及二次开发,玩转Prometheus生态组件!

Node Exporter源码分析Node Exporter 是一款使用 Go 语言编写的基于 Prometheus 生态的采集器程序,它可以用来采集目标机器的 CPU、内存、磁盘、网络 I/O 等指标信息,最后等待 Prometheus Server 通过 HTTP 接口拉取指标数据存储到 Prometheus Server 内置的 TSDB 中。Node Exporter 是基于 Pr...

2023-08-17 15:59:59 822

原创 [Goroutine]使用多协程并发地按照顺序打印字母表

theme: channing-cyan今天分享一道非常经典的并发问题,使用多个协程按照顺序打印字母表的字母,每个打印 10 次。思路:显然这里是要我们管道和协程完成同步交替打印,先把问题缩小,思考三个协程打印 a、b、c 的情形。最直接的思路就是定义三个管道,第 1 个协程打印完之后之后通知下一个协程,最后一个协程打印完成之后通知第 1 个协程继续打印,从而形成一个环。代码如下:...

2023-08-01 17:11:57 314

原创 [Docker]使用Docker部署常见的中间件

theme: healer-readablehighlight: xcode本篇文章给大家介绍如何使用 Docker 部署在企业工作中常用的中间件服务。Nginxshelldocker run -d \ -p 80:80 --name nginx-server-conf \ -v /opt/nginx-server-conf:/usr/share/ngin...

2023-07-26 15:18:51 358

原创 [wire]Go依赖注入库wire最佳实践

Wire简介Wire 是一款使用了依赖注入的来让连接组件变得自动化的代码生成工具。组件之间依赖关系在 Wire 种体现为函数的参数,Wire 鼓励显式地初始化参数而不是定义全局变量。因为 Wire 在运行时不依赖运行时状态和反射,使用 Wire 写出来的代码甚至可以替代手写的初始化代码。官方介绍文档:introductory blog post.安装使用下面的命令安装:sh...

2023-07-11 17:35:30 429

原创 [Docker]使用Docker部署Kafka

Kafka 是一个分布式流处理平台,它依赖于 ZooKeeper 作为其协调服务。在 Kafka 集群中,ZooKeeper 负责管理和协调 Kafka 的各个节点。因此,要在 Docker 容器中启动 Kafka,通常需要同时启动一个 ZooKeeper 服务作为其依赖。可以按照以下步骤来启动 Kafka 容器,并确保同时启动了 ZooKeeper 服务:创建一个 Docker 网络:...

2023-06-21 13:45:51 1112

原创 [Fiber]基于FastHttp引擎的高性能Web Framework简单入门

highlight: xcode简单介绍Fiber 是一个受著名的 Node.js 的 Web Framework —— Express.js 启发的 Web 框架,建立在 Fasthttp 之上,Fasthttp 是 Go 最快的 HTTP 引擎。旨在简化快速开发,同时考虑零内存分配和性能。安装首先,需要下载并安装 Go SDK 1.17 或更高版本。输入以下命令安装 F...

2023-06-19 16:16:27 156

原创 [Go]Go单元测试的前置和后置调用--TestMain

进行 Go 语言的单元测试通常使用标准库 testing 包,以 Test 开头,参数列表必须为 t *testing.T,做压测的话使用的是 b *testing.B。gofunc TestHello(t *testing.T) { fmt.Println("Hello World")}在 Goland 中,直接点击绿色按钮直接就可以运行了。但是假如我们需要每次单元测试运行...

2023-06-09 13:55:21 486

原创 [Quarkus]云原生时代的高性能Web Framework简单入门

什么是 Quarkus?简单介绍传统的 Java 技术堆栈是在一个没有云、容器和 Kubernetes 的世界中存在的,并且是为启动时间长、内存需求大的单体应用程序而设计的。Java 框架需要不断发展以满足这个新世界的需求。Quarkus 的产生是为了使 Java 开发人员能够为现代的云原生世界创建应用程序。Quarkus 是为 GraalVM 和HotSpot 量身定制的 kub...

2023-06-08 10:11:17 167

原创 [Warp]使用Warp来ssh远程连接服务器

Warp 是一款现代化的智能终端软件,基于 Rust 语言编写,所以性能是非常高的。它可以智能地给出命令提示还可以记住你的历史命令,也可以结合 AI 搜索你需要的命令。今天介绍一下如何使用 Warp 来实现 ssh 远程登录,并且免输密码。首先来看一下,Warp 的 AI 给出的解决方法:打开终端输入以下命令,点击提示的代码框右下角的按钮直接可以把命令插入到输入框里面。...

2023-05-19 13:51:12 3309 1

原创 [MySQL]MySQL面试专题(1)

1. MySQL索引数据结构MySQL 数据库使用的索引数据结构是什么?B+ 树。B+ 树是为磁盘或其他直接存取辅助设备设计的一种平衡查找树。在 B+ 树中,所有记录节点都是按键值的大 小顺序存放在同一层的叶子节点上,由各叶子节点指针进行连接。B+ 索引在数据库中有一个特点是高扇出性,因此在数据库中,B+ 树的高度一般都在 2~4 层,这也就是说查找某一键值的行记录时最多只需要 2 到...

2023-04-23 21:23:13 98

原创 [集合]Java基础面试题(3)

1. ConcurrentHashMap介绍一下 Java 7 的 ConcurrentHashMap 的数据结构?整个 ConcurrentHashMap 由一个个 Segment 组成,Segment 代表“部分”或者“一段”的意思,所以很多地方都会将其描述为分段锁。简单来讲就是,ConcurrentHashMap 是一个 Segment 数组,Segment 通过 Reent...

2023-04-23 17:33:32 102

原创 [集合]Java基础面试题(2)

1. Java有哪些集合Java 容器分为 Collection 和 Map 两大类,其下又有很多子类。Iterable 接口是 Collection 类集合的根接口。实现 Iterable 接口的类都可以使用增强 for 循环。2. HashMap的数据结构HashMap 的数据结构是什么样的?在 Java 中,HashMap 是一种基于哈希表实现的 Map 集合,使用键值对...

2023-04-22 21:50:44 54

原创 [Java]Java基础面试题(1)

1. Java语言特点简单易学;面向对象(封装,继承,多态);平台无关性( Java 虚拟机实现平台无关性);可靠性;安全性;支持多线程( C++ 语言没有内置的多线程机制,因此必须调用操作系统的多线程功能来进行多线程程序设计,而 Java 语言却提供了多线程支持);支持网络编程并且很方便( Java 语言诞生本身就是为简化网络编程设计的,因此 Java 语言不仅支持网络编程而且...

2023-04-22 19:50:33 194

原创 [Goroutine]使用协程并发实现快速排序

众所周知,快速排序是基于划分的思想对一个数组进行排序,把一个数组分成三块。分别是:小于基准值的,等于基准值的,大于基准值的,然后再对小于和大于基准值的部分再进行划分,最后直到划分区间长度为 1 时停止。整个快速排序的过程是递归的,因为对一个数组第一次划分完成之后还需要对剩下的两部分进行划分。通常代码可能写成这样:```gofunc QuickSort(arr []int) { if...

2023-03-31 09:18:32 67

原创 Macbook的MySQL无法启动

重启了一下 Macbook 我突然发现 MySQL 竟然无法启动了,点击 start mysql server 也没反应。于是我就使用了命令启动 MySQL 启动服务,千万别冲动卸载重装了。这是使用命令启动之后的效果:```shell授予文件夹读写权限sudochown-RL root:mysql /usr/local/mysqlsudo chown -RLmysql:my...

2023-03-22 12:29:14 521 2

原创 将博客搬至CSDN

文章搬家

2023-03-20 09:05:38 39

原创 [Stream]使用Stream巧妙地拼接url参数

在使用第三方 API 的时候,总是会需要在 url 后面拼接一些请求参数,也就是 ? 符号后面的一串键值对。看一个具体的例子,比如说要使用高德地图的 api,需要拼接一些参数,比如说出发地 orgin,目的地 destination 的经纬度等参数,在代码中最直接的拼接方法如下:```javaString url = "https://restapi.amap.com/v3/direct...

2023-03-07 17:28:50 614 1

原创 [Optional]优雅地使用Optionl判空

在日常开发当中,总是会碰到使用 if (obj == null) 判空的情形,假如 obj 内部还有属性要判空,属性的内部还需要判空,那么代码就可能写成这样:```javaif (obj != null) { // ... if (obj.foo != null) { // .... if (obj.foo.bar != null) { ...

2023-03-07 09:47:02 281

原创 [OpenFeign]同样请求URL,方法不同查询失败

在开发当中,经常会使用到 OpenFeign 做远程 HTTP 调用,但是 OpenFeign 会有一个这样的 bug。就是假如你请求的 URL 是同一个,但是请求方式不同就是导致错误。比如说一下两个接口:```java@FeignClient(name = "user-service")public interface UserClient {@PostMapping("/use...

2023-03-03 17:46:36 358

原创 [JWT]在项目中使用JWT,不依赖安全框架

什么是JWT?JSON Web Token (JWT) 是一种开放标准 (RFC 7519),它定义了一种紧凑且独立的方式,用于在各方之间安全地传输信息作为 JSON 对象。此信息可以被验证和信任,因为它是经过数字签名的。JWT 可以使用秘密(使用HMAC算法)或使用 RSA或ECDSA 的公钥/私钥对进行签名。尽管可以对 JWT 进行加密以在各方之间提供保密性,但我们将重点关注已签名...

2023-03-03 14:35:03 199

原创 [SpringBoot]Jackson序列化忽略空值字段

在使用 SpringBoot 开发 web 应用时,常常会用到 Jackson 来做 json 的序列化操作,但是有一些需要序列化的对象有很多没用到的空值字段,这样返回给前端很不优雅,所以得需要一种方法来忽略空值字段,这样还能减少网络传输字节大小。在 application.yml 文件中配置 jackson,使其忽略空值字段:yamlspring: jackson: def...

2023-03-02 15:08:30 789

原创 执行nacos-config.sh报错

为了导入 Seata 的配置项,需要使用官方的一个脚本来执行,我执行了一下一下命令之后,却报出了诡异的错误:shellsh nacos-config.sh后来检查了一下是因为有些配置项是空没有加双引号就会导致报错,加上 "" 就可以了:...

2023-02-24 17:27:38 625

原创 [IDEA]不修改原有配置文件如何启动多实例SpringBoot

在我们的日常开发当中,总是需要启动多实例 SpringBoot,用于做一些集群负载均衡的测试。比如,你使用 Zookeeper 做 RPC 测试,要测试 Zookeeper 的负载均衡是否产生效果,那么这时候就需要启动多个 SpringBoot 构成集群。传统的方法无非有两种:复制多个启动类,在启动之前修改 yml 配置文件,比如说改一些端口号,这样的话虽然能到达预期效果,但是会让项目目...

2023-01-15 11:38:41 428

原创 [Redis]a bean of type ‘...RedisTemplate‘ that could not be found

在使用 Spring Data Redis 框架时,需要使用 RedisTemplate 对象来实现操作的 Redis,需要使用 Spring 来注入 RedisTemplate:java@Autowiredprivate RedisTemplate<String, Object> redisTemplate;但是这样的注入方式是错误的,@Autowired 注解是根据类型...

2023-01-07 16:25:41 784

原创 [Tomcat]在CentOS上部署两台以上的Tomcat

在 Linux 服务器上,我们可能有时候需要部署多个 Tomcat 实例,这时候就会碰到一系列问题,比如说多个 Tomcat 共用一个 CATALINABASE 和 CATALINAHOME,这时候就会导致你配置的 Tomcat 的端口号不生效。解决方法如下:以创建两个 Tomcat 实例为例,在 /usr/local 目录下分别创建 tomcat8081 和 tomcat8082 文件夹...

2022-12-22 10:59:25 214

原创 [Redis]java.lang.NoClassDefFoundError: redis/clients/jedis/JedisClientConfig

在使用 Spring Data Redis 操作 Redis 时,Spring 报出了 java.lang.NoClassDefFoundError: redis/clients/jedis/JedisClientConfig 异常:```java@SpringBootTestpublic class SpringRedisDemoApplicationTests {@Autowire...

2022-12-21 10:22:36 1906

原创 [Redis]主从复制,主节点role显示为slave

在使用 Redis 的主从复制功能时,启动三个哨兵之后,突然发现原有的主节点的角色竟然变成了 slave,这真是一个诡异的错误,我百思不得其解,后来才发现是 sentinel.conf 文件有自动生成部分就是 # Generated by CONFIG REWRITE 这行字下面,只要启动之前把它们删除就可以了,后来就恢复正常了。...

2022-12-20 14:31:02 347

原创 [Mybatis]Cannot convert string '\xAC\xED\x00\x05ur...' from binary to utf8mb3

在使用 Mybatis-Plus 的 Lambda 条件查询时,报出了这个 Cannot convert string '\xAC\xED\x00\x05ur...' from binary to utf8mb3 错误:javaUpdateWrapper<ZhCustomer> wrapper = new UpdateWrapper<>();wrapper.lamb...

2022-12-15 15:55:17 2861

原创 [npm]sh: xxx/node_module/.bin/xxx: Permission denied

Mac OS 系统在安装 npm 依赖时总是会碰到 Permission denied 的情况,那是因为权限不足,只需要分配权限即可。解决方法如下,在项目根目录输入命令:shellchmod 777 node_module/.bin/xxx回车即可,之后可以正常安装依赖。...

2022-12-14 09:59:44 1914

空空如也

空空如也

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

TA关注的人

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