自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

池海

莫欺少年穷

  • 博客(118)
  • 收藏
  • 关注

原创 Android---ImageSpan + SpannableStringBuilder 图文混排解决表情文字高度不一致排版错乱问题(设置padding 行间距依然生效)

android图文混排的最常见实现方案就是使用SpannableStringBuilder ,比如我们要实现聊天框输入表情的功能就需要用到其实现。但是当我们的icon图标大于或者小于字体高度时会导致字体跟图标不能垂直居中对齐,这样UI显示就不是很友好。ImageSpan自带的DynamicDr awableSpan.ALIGN_CENTER配置会在换行,或者设置了padding等情况下失效造成错乱。

2023-07-02 14:19:40 1176

原创 scala---spark本地调式远程获取hdfs数据注意事项

这篇文章主要帮大家绕开一些本地使用spark调试获取远程hdfs数据的坑,个人在使用时也是基本把这些坑踩了一遍。希望下面的内容能给到其它人一些帮助,少走弯路减少不必要的时间损耗。常见的坑大致就以上几点,配置环境时仔细一些基本不会有其它坑了。如果遇到其它无法解决的问题欢迎私信讨论。

2023-05-12 18:38:41 1357 1

原创 docker---runlike查看容器run命令详情

一般情况下linux系统中都内置了pip3,没有的话先手动安装下。

2023-05-06 21:09:31 301

原创 redis缓存生产实践(一)---大key压缩

如果你在查找一些redis最佳实践或者内存优化的解决方案时常常会在各种繁杂的文章中充斥着大key,热key等字眼,其中的内容也是大径相庭。但是却基本看不到一些实际案例或者代码让你看了之后也云里雾里毕竟喜欢借鉴是我们国人传承至今的优秀美德,今天这个文章就简单分享下我的解决方案跟脱敏代码希望给需要的同学一点帮助。下面我将使用脱敏代码进行演示,这里说明下为了代码的自由度和可控制性实际操作中我并没有采用被很多人推崇的spring cache来进行整合而是采用自定义注解 + AOP的方式进行了一些定制化的开发。

2023-04-27 18:30:31 3317

原创 spring-data-mongodb---pushAll方法@Deprecated

原来早在2.4.x版本开始就弃用了pushAll,改为用push(k).each(listDiff.getPushResource());注释里也没给出任何替换的提示信息,一时不知道该用什么方法执行批量插入了。好在,在官方API中找到了答案。再想要使用pushAll方法才发现已经早早弃用了。

2022-11-17 13:16:38 482

原创 mongodb---$project判断数组中是否包含某元素并返回boolean值

聚合查询时判断一个数组中是否包含某个元素并映射到新字段返回布尔值。

2022-11-14 21:30:37 1014

原创 java基础---粗心导致int数值溢出导致Math.log10()运算NaN

这里很愚蠢的没有思考直接传入了运算值导致(1000 * 60 * 60 * 24 * 31)的结果只能是一个int,但是运算结果又超过了int所能接受最大值。int型数据在二进制里面是有固定位数的,当数字超过int数据时,二进制的最前面的位数也就是符号位会发生变化,所以就变成负数了。再次提醒自己不要犯这种低能的错误TT,只需要把其中一个参数改为double或者强转下让计算结果用double接收即可。因为log运算不能传入负数就会导致运行结果为NaN。今天犯了一个幼儿园水平的错误,真实不该TT。

2022-10-26 18:38:15 341

原创 elasticsearch7.x+---搜索建议设计与实现

在7.0+版本中es官方贴心的为我们提供了一个新的字段类型来帮我实现开箱即用的搜索建议功能,官方文档中提到它的工作原理是创建一系列子字段,这些子字段被分析为索引词,可以通过部分匹配整个索引文本值的查询进行有效匹配。在早之前官方也为我们提供了,suggests_completion、suggests_phrase、suggest_term等实现自动补全纠错等功能。

2022-09-09 09:00:00 896

原创 android---7.0+夜神模拟器+Fiddler抓包app数据

废话不多说直接上手,模拟式我使用了夜神最新版本7.2.0.9首先配置夜神网络代理。点进去长按WiredSSID点击修改网络。端口默认8888只要与Fiddler同步即可。本机ip4可以 cmd --ipconfig自行查看打开浏览器输入模拟器会自动下载随便起个名称安装即可安卓7.0+版本新增了ssl pinning,这个东西是对客户端的证书进行验证,如果遇到不信任的证书,就会断开连接,不继续请求。所以这里使用了virtualXposed(框架虚拟机) + justtrustme(绕过SSL证书)方

2022-06-02 19:11:59 1641

原创 android---ScrollView+ConstraintLayout+RecyclerView尾部item加载不全

RecyclerView嵌套一层RelativeLayout即可解决 <androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/main" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_constrainedWidth="true"

2022-05-19 00:59:11 449

原创 java---爬虫

提示:以下代码仅能用于学习使用,部分代码已脱敏前言为了帮助女朋友完成作业从没接触过爬虫的我被赶鸭子上架,硬着头皮code。索性是不负所托,虽然代码很垃圾但是所期望的功能也完整实现。下面进入正题希望可以帮助到有同样需求的同学。一、技术栈 <dependency> <groupId>net.sourceforge.htmlunit</groupId> <artifactId>htmlunit<

2022-05-04 19:13:24 1700 1

原创 redis---分布式锁存在的问题及解决方案(Redisson)

系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.setNx2.set NX NP3.锁超时问题3.1过期时间如何设置3.2锁的续签4.增加锁的可重入性2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人

2022-04-01 21:42:40 16227 5

原创 rocketmq---源码启动DEBUG流程

在我们需要对源码进行调试的时候,namesrv与broker直接是无法启动的我们需要进行一点简单的配置ROCKETMQ_HOME需要配置为rocketmq namesrv的源码路径和启动配置文件路径在namesrv文件根目录下创建conf 和store logs 目录,复制distribution目录下面的borker.conf和logback_broker.xml然后修改conf和xml的配置最后分别启动namesrv与broker即可进行源码阅读与dubug使用example项目中的测

2022-03-21 15:37:01 346

原创 redis---布隆过滤器

一、下载RedisBloomhttps://github.com/RedisBloom/RedisBloom/releaseswget https://github.com/RedisBloom/RedisBloom/archive/refs/tags/v2.2.12.tar.gz二、解压编译下载文件解压tar -zxvf v2.2.12.tar.gz编译cd 解压后文件地址make##三、修改配置文件vim redis.conf增加 loadmodule /xx/xx/red

2022-03-09 22:22:15 1123

原创 gitLab---docker部署时ssh更改端口完美解决方案

1.在使用docker环境部署gitlab时如果我们使用默认端口22,宿主机由于端口占用是无法直接映射的必须使用其它端口。此种情况的弊端就是当我们直接复制ssh地址时,地址是不完整的需要我们手动加入宿主机端口。2.如果我们修改gitlab.rb配置文件,情况可能出乎我们的意料。此时你会发现复制ssh地址时是完整且正确的,但是却无法克隆git会告诉我们连接被拒绝。gitlab_rails['gitlab_shell_ssh_port'] = 2222为什么我们在配置文件中修改了ssh端口号却依然不.

2022-01-26 23:08:08 7540 1

原创 mongodb---spring-data-mongodb聚合统计数组中元素个数

shell写法:db.commentEo.aggregate({$project: { NumberOfElements: { $size:"$likeContainer" }}})spring-data 实现:从1.5开始支持project $size,使用size操作符统计数组中元素个数并映射输出下方demo案例我使用数组存储了点赞用户id,想要获取点赞数需要统计数组中元素个数。这里我懒得添加新字段随便映射到了一个integer字段下不用在意 Aggregation agg = Aggreg

2022-01-05 23:41:19 1682

原创 Elasticsearch---spring-boot-starter-data-elasticsearch整合攻略详解

前言  首先要确保自己引入的spring-boot-starter-data-elasticsearch版本与elasticsearch一直,通常情况下会遇到使用了如,spring-boot-dependencies,parent等版本依赖管理导致es版本不对应的情况。此时记得手动指定如下jar版本例如我使用的是7.12.0: <!-- 重写覆盖 spring-boot-dependencies 中的依赖版本 --> <dependency>

2021-12-17 23:29:25 8334

原创 redis---整合springBoot配置类

下面一些如@ConditionalOnClass自行去掉,这是整合spring-start添加进去的@ConditionalOnWebApplication@ConditionalOnClass({RedisOperations.class})@EnableConfigurationProperties({RedisProperties.class, CacheManagerProperties.class})@EnableCaching@Configuration@SuppressWarnin

2021-12-16 15:32:38 1220

原创 Dubbo---升级Dubbo2.7.13依赖问题

版本对应关系表:https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E2021-12-14 18:42:54.401 WARN 9328 --- [ main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - canc

2021-12-14 18:58:38 5277 7

原创 docker---安装单机nacos开发环境配置mysql持久化

拉取镜像docker pull nacos/nacos-server:xxx创建mysql数据库:脚本文件地址https://github.com/alibaba/nacos/blob/develop/config/src/main/resources/META-INF/nacos-db.sql/******************************************//* 数据库全名 = nacos_config *//* 表名称 = config_info */

2021-12-09 21:31:37 149

原创 docker-compose---安装挂载本地文件启动mariadb

docker pull mariadb:xxx创建本地文件夹与配置文件,注:记得使用chown授权避免权限不足无法写入的错误[mariadbd]skip-host-cacheskip-name-resolve[mysqld]datadir=/var/lib/mysqllog-error=/var/log/mysql/mysqld.logpid-file=/var/run/mysqld/mysqld.pidlog_bin=/var/log/mysql/mysql-binbinlog_f

2021-12-09 17:16:28 1814

原创 mysql---配置文件

[client] # 客户端设置,即客户端默认的连接参数port = 3306 # 默认连接端口socket = /tmp/mysql.sock # 用于本地连接的socket套接

2021-12-09 00:30:03 1067

原创 keepalived---配置文件详解

完整的keepalived的配置文件,其配置文件keepalived.conf可以包含三个文本块:全局定义块、VRRP实例定义块及虚拟服务器定义块。全局定义块和虚拟服务器定义块是必须的,如果在只有一个负载均衡器的场合,就不须VRRP实例定义块。#全局定义块global_defs { notification_email { #指定keepalived在发生切换时需要发送email到的对象,一行一个; wgkgood@gmail.com

2021-11-11 23:49:58 372

原创 linux---centos8与centos7不同环境下时间同步

centos7:最常见的使用ntpdate同步主机时间:yum install -y ntpdate设置时间同步/usr/sbin/ntpdate cn.pool.ntp.org加入定时任务crontab执行:crontab -e在文件末尾添加:*/* 1 * * * /usr/sbin/ntpdate cn.pool.ntp.org然后输入::x, 保存这样服务器就会每天1点去矫正服务器的时间了。centos8:CentOS8系统中,原有的时间同步服务 ntp/ntp

2021-11-11 22:47:48 1518

原创 Linux---配置国内yum源

常见两种方式网络yum源一般是指163、搜狐、阿里、中国科技大学等公共的网络yum源,或者是自建的局域网yum仓库。配置网络yum源有2种方式:一种是直接下载官方的yum配置文件替换到本地另一种是修改本地的yum配置文件中的baseurl地址一、 下载公共网络yum源文件下载前要确定自己系统版本:cat /etc/system-release这里我们将原yum配置文件移动到自定义的目录下进行一个简单的备份,如果出现意外后也可以及时回滚mv /etc/yum.repos.d/C

2021-11-11 16:48:47 3326

原创 DDD---领域驱动设计(一)

文章目录前言一、DDD的优势二、领域模型的重要性三、DDD落地代表四、DDD建设流程4.1 战略设计4.1.1通用语言4.1.2 限界上下文4.1.3 领域子域核心域通用域支撑域4.1.3 上下文映射4.1.4 事件风暴分析问题空间4.2 战术设计4.2.0 基础架构知识4.2.1 实体设计规范:4.2.2 值对象4.2.3 聚合聚合根聚合根配置4.2.4 工厂4.2.5 仓储仓库层注意事项4.2.6 领域事件4.2.7 领域服务跨对象事务型(多实体)-第三方领域服务常见问题汇总:前言  DDD架构

2021-09-27 21:17:06 1237 1

原创 MYSQL---BufferPool

系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例

2021-07-20 16:33:59 1400 1

原创 mysql----MVCC

atomicity—undologdurability—redologisolation—锁+MVCC快照读,即普通的select语句。当前读,即相当于一种悲观锁,操作时需要进行加锁。MVCC都是基于快照读,目的是为了提高读写时候避免锁的竞争从而提升性能...

2021-07-13 23:57:10 209

原创 JS---java中Long类型转js Number精度丢失问题导致的坑

文章目录场景解决场景在做订单业务时mysql中选择了bigint,java中使用long类型映射。订单长度19位,如1395005294286733314。但是在swagger中测试时每次返回的数据都是1395005294286733300,而我数据库中恰巧存在1395005294286733300这个值让我第一时间误判没有考虑到是精度损失的问题。使用postman请求接口却得到了正确结果。解决通过观察network中相应数据才终于恍然大悟并不是请求被过滤导致响应结果被更改,而是精度丢失导致后

2021-05-22 22:44:24 1262

转载 微信小程序---配置普通链接二维码规则

2021-05-21 00:47:55 3613

原创 spring---自定义Filter有两种方式

文章目录前言一、基于注解二、注册bean前言在我们开发中经常需要对请求做一些自定义的过滤处理,如最常见的jwt每次请求进来我们都需要去解析判断token这个时候肯定就需要自定义一个filter去处理。spring为我们提供了两种自定义filter方式,一种是基于注解@WebFilter,一种是手动注册bean的方式。一、基于注解基于注解的方式相对步骤简单些,但是由于它的一些局限性生产中基本见不到其身影。大致只需要三步骤:1、实现Filter接口(javax.servlet)2、添加@WebF

2021-05-17 15:49:27 988

原创 nginx---docker环境下配置https

文章目录前言一、将ssl绑定到域名下并认证二、下载证书并上传至服务器三、修改配置文件前言本次演示环境基于之前配置的docker环境下的nginx,服务器为腾讯云其它如阿里,华为基本都一样大同小异。一、将ssl绑定到域名下并认证下面我们拿领取的一年免费ssl证书为例点击进去后绑定我们的域名进行签发,这里因为当时操作时候忘了截图所以没有实际对应图片。傻瓜式按照提示来就可以,绑定域名后会提示我们进行验证。可选择方案有两种一种添加解析记录,一种采取像微信小程序那样将指定文件放置于服务器下的方式。这里

2021-05-14 21:53:03 480

原创 微信小程序---获取并更新data中二维数组的值

文章目录前言场景一、点击事件传值前言之前的微信点餐平台依然在缓慢的开发着,之前初步完成了购物车界面。后面在补充业务逻辑功能的时候由于自己之前没有小程序开发经验遇到了一些小小的问题特此记录下。场景这里要新增购物车基础功能,首先说明下菜单数据格式。我后端返回的是一个二维数组,一维最外层放置的是根据菜单分类的对象如人气TOP10,无肉不欢等。分类对象中用第二维数组对象存放具体分类对应的菜品信息。下面是我刚开始写死的假数据用来进行下面的演示:通过使用data-形式把我们需要的值传入点击事件对象,函

2021-05-12 23:46:08 3968 1

原创 Vue3.0+Element-Plus+SringBoot-@RequestPart注解实现上传图片并携带数据对象

文章目录前言一、前端二、后端前言最近在帮亲戚做一个餐饮管理平台,我这个三流业务前端光脚的不怕穿鞋的直接将Vue版本升级到了3.0。想开发的过程中学习适应下3.0,总体来说还是比较顺利从测试版本到现在也一年时间了市面上文档跟博客也丰富了起来。但是在设计新增菜品功能时遇到了小小的问题, 虽然也能携带参数但是并不满足我的场景需求。当时的问题是:我想同时传递图片信息和菜品数据对象给后端,而像最常用的@requestBody又只能有一个。把数据对象放到请求路径中又很不优雅,后面想到了使用@RequestPar

2021-05-06 23:58:56 3055 9

原创 微信小程序---点餐小程序左侧滑动菜单实现

文章目录前言一、初识scroll-view二、左侧导航三、右侧滑动前言最近在帮亲戚做一款微信的点餐小程序,以前从没有接触过小程序的我只能现做现卖。一边看文档一边实践尝试,在进行到点菜模块左侧滑动菜单时遇到了小小的阻碍。索性在查找一些资料和教程后主要功能实现了出来。特此记录下,也希望能帮助到需要做同样功能的同学。效果图:一、初识scroll-view想要实现上述功能我们必须要借助微信为我们提供的scroll-view组件,没有了解过的同学需要先去简单阅读下API。从图中我们可以看出整个布局主要

2021-04-22 19:32:16 5298 1

原创 Seata1.4.0---新版本安装配置整合nacos与mysql

文章目录前言一、配置mysql1.创建数据表2.conf目录file.conf中加入数据库相关信息二、配置nacos1.单独创建seata命名空间前言在最近的几个版本中seata在配置方面进行了一定的变化,官方减少了一部分配置文件example的直接提供而是需要我们通过在线拉取从官网获取。同时启动配置也从默认配置中移除了很多内容迁移到配置中心,下面我们就以目前1.4.0最新稳定版本为例学习下新版本如何配置启动。一、配置mysql1.创建数据表seata在数据存储方面默认是用的是file模式在生产环

2021-04-14 00:53:18 2254 2

转载 Swagger3 注解使用(Open API 3.0)

文章目录前言一、swagger 3 的使用SwaggerSpringFox3.0 相关特性SpringDoc二、从 spring-fox 迁移到 springdoc三、使用 swagger3 注解代替 swagger2 的(可选)前言Swagger2(基于openApi3)已经在17年停止维护了,取而代之的是 sagger3(基于openApi3),而国内几乎没有 sagger3使用的文档,百度搜出来的都是swagger2的使用,这篇文章将介绍如何在 java 中使用 openApi3(swagge

2021-04-03 14:56:42 16002 7

原创 springCloud---jar包@Autowired注入失败,及idea @SpringBootApplication already applies given @ComponentScan错误

文章目录前言一、配置@ComponentScan二、配置idea前言在进行微服务项目的时候,我们往往需要引入自定或者第三方的许多公共包。这时经常容易忽略的一个小问题是,我们明明在代码中加了@compoent等bean注入注解,但是项目运行时会报错提示找不到该bean。原因很简单在我们没有配置@ComponentScan时spring会默认从根目录下进行扫描,但是我们引入的jar包并不在当前项目下。就会导致spring无法帮我们自动扫描注入,这可能也是一直做单体项目养成的坏习惯。一、配置@Compo

2021-04-01 18:07:13 2443 1

转载 spring cloud gateway 聚合统一管理swagger3.0中的API

文章目录1.配置SwaggerProvider,获取Api-doc,即SwaggerResources。2. 添加一个global filter,删除X-Forwarded-Prefix参数,符号3.在配置文件中为微服务节点添加过滤器生效1.配置SwaggerProvider,获取Api-doc,即SwaggerResources。因为Swagger暂不支持webflux项目,所以Gateway里不能配置SwaggerConfig,也就是说Gateway无法提供自身API。但我想一般也不会在网关项目代码

2021-03-31 00:40:05 2801

原创 mariadb集群搭建---Galera Cluster+ProxySQL

文章目录前言一、Galera Cluster二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、Galera ClusterMariaDB Galera Cluster 是一套在 mysql innodb 存储引擎上面实现multi-master及数据实时同步的系统架构,业务层面无需做读写分离工

2020-12-29 01:00:09 1802

空空如也

空空如也

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

TA关注的人

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