- 博客(135)
- 资源 (1)
- 收藏
- 关注
原创 Spring Boot 之自定义starter
</parent><modules></modules><releases></project>starter的pom如下<parent></parent></project>/***/@Data@Component<parent><plugin><excludes><exclude></exclude>
2023-08-21 10:39:53
241
原创 Mac下终端密钥登录linux服务器
通常我们登录Linux有两种方法:密码或密钥密码登录每次都要输入用户名密码比较麻烦,而使用密钥则可以避免这个问题。
2023-08-18 09:56:06
653
原创 Sharding jdbc分库分表与mybatis-plus一起使用与LocalDateTime冲突问题解决方案
问题报错:Error attempting to get column ‘create_time’ from result set. Cause: java.sql.SQLFeatureNotSupportedException: getObject with type。Mybatis与Sharding版本某一个不支持。sharding jdbc版本:4.1.1。mybatis-plus版本:3.4.0。java版本:java11。
2023-08-17 17:00:26
592
原创 Spring Boot集成Sharding JDBC分库分表
近期公司购物车项目需要使用Sharding JDBC分表,特记录下。使用函数批量创建,可参考如下函数,测试情况下可创建数量。
2023-08-17 13:52:22
160
原创 Mac M1基于Docker Desktop部署Gitlab
进入容器命令:docker exec -it <容器id> bash 实例如下图。点击run,弹出以下界面,配置端口映射和目录挂载后,即可生成一个容器。如下,在external_url后面配置gitlab的访问url。镜像下载完成后,可在Docker Desktop看到镜像。以下操作需要在Gitlab容器的命令行进行。配置url,打开gitlab的配置文件。
2023-08-17 13:48:10
769
1
原创 Mac M1安装k8s
开启 Kubernetes,并等待 Kubernetes 开始运行。进入k8s-for-docker-desktop,执行如下命令。下载你docker-mac对应的版本,我的是v1.21.3。
2023-08-17 13:39:13
444
原创 Spring WebFlux集成MongoDB
WebFlux是什么Spring WebFlux 是 Spring MVC 的完全非阻塞响应式替代方案,它可以在不增加硬件资源的情况下实现更好的垂直扩展。作为反应式,它现在利用反应式流来允许异步处理从调用返回到服务器的数据。这意味着我们将看到更少的Lists、Collections 甚至单个对象,取而代之的是它们的反应式等价物,例如Flux和Mono(来自 Reactor)简单例子上面代码是否看起来很熟悉,它与标准的 Spring MVC 控制器看起来并没有什么不同,但是在阅读这些方法之后,我
2023-08-17 11:28:56
137
原创 Grpc-java请求与响应参数统一打印
在将Grpc注册到Spring容器的时候可以使用拦截器,在拦截器中打印相关请求与响应。tips:客户端拦截器实现。在Rpc注册到Spring容器时初始化Grpc,这样此Grpc在调用其他接口时便会相关请求、响应。相关框架,对于调用第二/三方接口的请求日志统一打印一直是一个问题。在将Grpc注册到Spring容器的时候使用我们自定义的拦截器。生成的xxxGrpc相关类把请求参数和响应参数放在了。或者初始化Grpc时向。里面,我们只需要拿到。
2023-08-17 11:08:23
555
原创 Mac下Chromedriver失效问题
报版本不匹配问题,之前也遇到过,今天特意记一下。下执行下面两个命令(任何一个都可以)输入路径可打开隐藏目录。
2023-08-16 17:22:26
305
原创 《算法》——子字符串查找
子字符串查找:给定一段长度为N的文本和一个长度为M的模式(pattern)字符串,在文本中找到一个和该模式相符的子字符串。
2023-08-16 14:11:34
164
原创 《算法》——三向单词查找树
在三向单词查找树中, 每个结点都含有一个字符、三条链接和一个值。这三条链接分别对应着当前字母小于、等于和大于结点字母的所有键。
2023-08-16 11:09:43
76
原创 《算法》——单词查找树
和各种查找树一样,单词查找树也是由链接的结点所组成的数据结构,这些链接可能为空,也可能指向其他结点。每个结点都只可能有一个指向它的结点,称为它的父结点(只有一个结点除外,即根结点,没有任何结点指向根结点)。单词查找树一般会含有大量的空链接,因此在绘制一颗单词查找树时一般会忽略空链接。在第二个结点中沿着第三个字符继续前进,如此这般直到到达键的最后一个字母所指向的结点或是遇到一个空链接。和二叉查找树一样,在插入前进行一次查找:在单词查找树中意味着沿着被查找的键的所有字符到达树中表示尾字符的结点或者一个空链接。
2023-08-16 09:01:56
110
原创 《算法》——三向字符串快速排序
三向字符串快速排序只将数组切分为三部分,因此当相应的高位优先的字符串排序产生的非空切分较多时,它需要移动的数据量就会变大,因为它需要进行一系列的三向切分才能取得多向切分的效果。因此三向字符串快速排序能够很好处理等值键、有较长公共前缀的键,取值范围较小和键和小数组——所有高位优先的字符串排序算法不善长的情况。在将基于大小的R的字母表的N个字符串排序过程中调用charAt()方法次数的增长数量级(平均长度为w,最大长度为W)
2023-08-16 08:58:21
142
原创 《算法》——低位优先与高位优先的字符串排序
假设有一位工程师架设了一个设备来记录给定时间段内某条忙碌的调整公路上所有车辆的车牌号,他希望知道总共有多少辆不同的车辆经过了这段高速公路。简单方案就是将所有车辆号排序,然后遍历找出所有不同的车牌号的数量,车牌号由数字和字母组成,因此一般都将它们表示为字符串。车牌号的长度一般都是相同的,这种情况在排序应用中很常见——比如电话号码、银行账号、IP地址等都是典型的定长字符串。
2023-08-15 21:15:47
109
原创 《算法》——字符串排序之键索引计数法
String是由一系列字符组成的,字符的类型是char,可能有2^16个值。String对象是不可变的,因此可以将它们用于赋值语句,作为函数的对数或是返回值,而不用担心它们的值会发生变化。我们常用的操作就是从某个字符串中提取一个特定的字符,即Java的String类的charAt()方法,就好像字符串是保存在一个char[]数组中一样。在Java中,String类型的length()方法实现了获取字符串的长度的操作。同样,我们也希望length()方法能够在常数时间内完成。Java的。
2023-08-15 20:36:35
152
原创 《算法》——有向环
如果任务x必须在任务y之前完成,而任务y必须在任务z之前完成,但任务z又必须在任务x之前完成,那肯定是有人搞错了,因为这三个限制条件是不可能被同时满足的。一般来说,如果一个有优先级限制的问题中存在有向环,那么这个问题肯定是无解的。要检查这种错误,需要解决下面这个问题。给定的有向图中包含有向环吗?如果有,按照路径的方向从某个顶点并返回自己来找到环上的所有顶点。
2023-08-15 20:32:21
74
原创 《算法》——顶点与拓扑排序
在有向图中基于尝试优先搜索的顶点排序,尝试优先搜索正好只会访问每个顶点一次。如果将dfs()的参数顶点保存在一个数据结构中,遍历这个数据结构实际上就能访问图中的所有顶点,遍历的顺序取决于这个数据结构的性质以及是在递归调用之前还是之后进行保存。
2023-08-15 20:17:44
71
原创 《算法》——有向图可达性查找
一幅有方向性的图(或有向图)是由一组顶点和一组有方向的边组成的,每条有方向的边都连接着有序的一对顶点。我们称一条有向边由第一个顶点指出并指向第二个顶点。在一幅有向图中,一个顶点的出度为由该顶点指出的边的总数;一个顶点的入度为指向该顶点的边的总数。一条有向边的第一个顶点称为它的头,第二个顶点则被称为它的尾。将有向边画为由头指向尾的一个箭头。用v → w来表示有向图中一条由v指向w的边。在一幅有向图中,有向路径由一系列顶点组成,对于其中的每个顶点都存在一条有向边从它指向序列中的下一个顶点。有向环。
2023-08-15 17:36:05
523
原创 JavaBean,Protobuf互相转换
公司使用谷歌的protobuf来进行数据传输,DO 对象对内,DTO对象对外,对于DT与DTO的转换还是手写的build/set,感觉效率太低,所以需要找一个专门用来解决转换问题的工具。MapStruct 对标的是和,但是性能却比这两种好上许多倍。MapStruct 就是这样的一个属性映射工具,且效率比BeanUtil高很多,只需要定义一个 Mapper 接口,MapStruct 就会自动实现这个映射接口,避免了复杂繁琐的映射实现。MapStruct官网地址:DO(业务实体对象),DTO(数据传输对象。
2023-08-15 17:34:10
1096
原创 Kubernetes系列——什么是K8S?
Kubernetes是什么?首先Kubernetes是一个全新的基于容器技术的分布式架构领先方案,是容器去的优秀平台选型方案,已成为新一代的基于容器技术的PaaS平台的重要底层框架,也是云原生技术生态圈的核心,服务网格(),无服务器架构(Serverless)等新一代分布式架构框架及技术纷纷基于Kubernetes实现。其次,k8s替我们处理了负载均衡器的选型和部署实施等问题,也不必再考虑引入或者自己开发一个复杂的服务治理框架,不必再头疼于服务监控和故障处理模块的开发。因为K8s。
2023-08-15 10:43:41
71
原创 元组Tuple介绍与使用
在开发过程中我们经常遇到一个方法想要返回两个返回值的情况吧,但是return语句只允许返回一个对象,虽然我们可以使用数组,map等来返回,但是使用起来还是比较麻烦。而解决办法就是创建一个对象,用它来持有想要返回的对象上述概念称为元组(tuple),它是将一组对象直接打包存储与其中的一个单一对象.这个容器对象允许读取其中的元素.但是不允许向其中存放新的对象.(这个概念也称为数据传送对象,或信使)。元组和列表list一样,都可能用于数据存储,包含多个数据;
2023-08-15 09:04:12
651
原创 《算法》——广度优先搜索与找寻找路径
单点路径问题在图的处理领域中十分重要,从输入流中读取一个图从从命令行得到一个起点,然后打印从起点到与它连通的每个顶点之间的一条路径。下面扩展了尝试优先搜索代码,添加一一个实例变量edgeTo[]整型数组来起到Tremaux搜索中绳子的作用,这个数组可以找到从每个与s连通的顶点回到s的路径。它会记住每个顶点到起点的路径,而不是记录当前顶点到起点的路径。
2023-08-14 21:26:20
150
原创 查找算法——顺序查找
基于无序链表的顺序查找:在查找中我们一个一个地顺序遍历符号表中的所有键并使用equals()方法来寻找与被查找的键匹配的键。
2023-08-14 19:45:08
143
原创 FunctionalInterface解析
2、一个抽象方法重写了Object的一个公共方法。1、Java8自带的default方法。包下我们可以看到所有的自带的符合。的类型,主要有以下几种类型。
2023-08-14 17:36:44
402
原创 算法——初级排序算法之快速排序
快速排序可以说是应用最广泛的排序算法了,主要是因为实现简单、适用于各种不同的输入数据且在一般应用中比其他排序算法都要快得多。快速排序是一种基于分治思想的排序算法。它将一个数组分成两个子数组,将两部分独立地排序。
2023-08-14 17:15:24
53
原创 微信机器人定时发送脚本
因为我们值班表是发送到企业微信的群里的,就考虑建个机器人然后写一个脚本来定时发送值班安排。值班排期,工作日一人,周六周日两人(本周和下周的人)公司各域都有值班制度,安排人处理线上问题。
2023-08-14 17:13:05
519
原创 算法——初级排序算法之归并排序
将两个有序的数组归并成一个更大的有序数组,这种算法叫归并排序当数组长度为2的幂时,向上和向下比较次数和数组访问次数是一样的,只是顺序不同。自底向上的归并排序比较适合用链表组织的数据。
2023-08-14 17:10:55
52
原创 Mac重启后ssh-key失效问题
周日重启了下电脑,今天周一上班拉代码才发现没有权限。一看,好家伙,所有的ssh-key都没有了。中选中刚保存的文件即可设置为开机启动即可。制作Automator并开机启动。并制作以下shell文件。在git的根目录中找到。打开它并增加以下代码。
2023-08-14 17:08:02
705
原创 M1版本Mac通过Docker安装RocketMQ
前言上一篇我通过docker安装到mac上的rocketmq,三个容器都启动成功,却无法通过ip:port进行访问,考虑到我的Mac版本是M1的原因,这次我们通过官网的项目重新编译来解决这个问题。
2023-08-13 11:17:00
648
原创 Mac下通过docker安装RocketMQ
RocketMQ是一个纯java、分布式、队列模型的开源消息蹭件,支持事务消息、顺序消息、批量消息、定时消息、消息回溯等功能。基本概念RocketMQ主要由 Producer、Broker、Consumer 三部分组成,其中Producer 负责生产消息,Consumer 负责消费消息,Broker 负责存储消息。Broker 在实际部署过程中对应一台服务器,每个 Broker 可以存储多个Topic的消息,每个Topic的消息也可以分片存储于不同的 Broker。
2023-08-13 11:16:09
835
原创 代码简化三剑客之MapStruct
关于componentModel = “spring” 生成的实现类上面会自动添加一个@Component注解。jsr330:生成的映射器用{@code@Named}注释,并可以通过@Inject检索,例如使用Spring。我们项目中lombok和validation已经都在使用了,但是MapStruct目前使用的却比较少;spring:生成的映射器是一个单例范围的springbean,可以通过@Autowired检索。cdi:生成的映射器是应用程序范围的cdibean,可以通过@Inject检索。
2023-08-13 11:14:36
103
原创 使用FreshRSS自建RSS订阅器与使用
开启配置:配置>>用户帐户>>API管理>>API密码(设置自用rss源密码)开启配置:管理>>认证>>认证方式>> 允许 API 访问 (用于手机应用)用户即你FreshRSS登录用户名、密码即为上面设置的API密码。浏览器打开后按照下一步配置即可,主要是mysql数据库的配置。server可以在API密码下面点击链接查找或者点击。以便在 Reeder 等第三方阅读器中使用。选择Add Account下拉选择自有源。这款RSS阅读器,但是它有几个缺点。本人一直在Mac端使用的是。比如我Mac上用的是。
2023-08-13 11:13:56
7290
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人