- 博客(36)
- 资源 (1)
- 问答 (2)
- 收藏
- 关注
原创 bind方法的使用
在JavaScript或TypeScript中,this.data.setEventListener(this.onAddEvent.bind(this));使用.bind(this): this 的值被固定为调用 .bind() 时提供的对象,这可以避免因 this 值错误而导致的问题。因此,使用 .bind(this) 可以帮助防止 this 错误绑定导致的潜在问题,特别是在处理事件监听器和其他非直接调用的场景中。不使用.bind(): this 的值可能根据调用上下文而变化,这可能导致意外的行为。
2024-07-09 14:44:03
193
原创 docker安装mysql8
之前自己在网上找了一些docker安装mysql8的方法,结果都不行,于是自己根据自己遇到的情况再结合网上搜索到的安装方式调整了一下,成功执行安装。密码先试试看我们设置的123456,如果不行直接点击回车键,因为初始密码设置失败的话,密码默认为空。将以下内容直接复制到文件中,可根据自己具体需求更改。自己找一个目录,创建启动脚本,以免后续使用忘记命令。改了之后直接复制所有文件到我们的挂载目录下。容器正常的情况下,进入容器。查看一下容器是否正常启动。复制目录下的文件到本地。创建mysql的配置。
2023-11-23 17:44:30
191
原创 elementui表单的验证问题
然后我在网上搜了一下解决办法,大部分都是说用this.$refs[‘form’].resetFields()重置一下就行,我试了但是不行,然后我去看了一下官方文档,重置是重置了,但是是重置为初始值,但是我仔细去研究了一下这个初始值,其实就是第一次给form表单赋值时,它在页面上渲染出来的值。 虽然已经能解决这个问题了,但是还是有一个问题,如果用户使用的时候正好网络不好,但是修改对话框已经打开了,以前的数据还没有加载出来,如果这时候用户胡乱操作很容易造成异常,所以还是等拿到数据后再打开对话框最好。
2023-09-21 18:00:06
481
1
原创 线程池满了如何处理
举个例子,我创建了一个线程池,最大线程数是10,等待队列最大量是1000,结果高峰期时一下给我来了2000个任务,这个时候自然是顶不住的。解决办法肯定是有的,比如改一下线程池的最大等待队列,扩大到2000以上,但是这种办法肯定不是完美的,如果任务量再次增涨,我又得去改一此代码吗,这样肯定不行。某天搬砖时遇到一个问题,我创建了一个线程池执行任务,刚开始的时候还是一切,结果第二天发现有些任务没有正常执行。,不过相比之下我个人更喜欢入库的方案,因为入库之后,每个失败的任务我都能记录日志,方便后期做分析统计。
2023-08-14 18:10:17
853
原创 kafka生产者指定ip
我通过spring boot集成了kafka写了一个生产者,客户那边给我三个节点的ip,然后我也没多想就配置上来了,但是实际上客户的集群中搞了10个主机部署了kafka,然后我就无了。我只配置了给我的三个节点的hosts,后端就开始疯狂报错hosts unknow的异常。 这里需要讲一下kafka的机制,当你使用Kafka生产者发送消息时,Kafka会根据负载均衡策略在所有可用的Kafka节点之间进行分配,以确保负载均衡和容错。所以,我的生产者可能会向配置的主机以外的主机发送消息。
2023-08-03 18:12:11
1026
原创 org.apache.commons.vfs2.FileSystemException:Invalid absolute URI
org.apache.commons.vfs2.FileSystemException:Invalid absolute URI
2023-03-06 17:51:17
887
1
原创 uncategorized SQLException for SQL错误解决
uncategorized SQLException for SQL错误解决
2023-02-02 17:47:40
6282
原创 爬虫学习记录
上面只是我学爬虫过程中的一些思考,模拟了一下网上那些爬虫工具,但是他们是怎么做的我也不知道。我做的测试毕竟很浅,真正的爬虫需要考虑的东西很多,例如:模拟登录(其中包含有验证码的情况下该怎么处理),http和https,数据清洗(这个贼麻烦),数据分析,丰富的前端知识,爬虫技术(selenium这类),抓包工具(fiddler这类),多线程,正则表达式,文件读写等等还有很多其他方面。这些都需要去了解的,只能一步一步去学习。
2022-11-17 11:39:56
421
原创 通过时间格式的字符串解析时间格式
话不多说,在工作时有一个需求要求我通过一个时间格式的字符串解析出时间格式,然后我在网上找找看有没有什么工具可以用,但是也没发现什么这类工具,就干脆自己写了个简单的方法先解决了问题再说,结果就发现了一个有趣的东西。感觉这个还是挺有趣的,之前没这样操作过确实也不知道这个现象,这个估计得研究源码才能知道为什么了,现在先把这个记一下,后面有时间看看源码,得到结果后再另写一篇博客。 然后说说我遇到的情况,先贴源码。 先看看我写的那个简单的方法。
2022-11-03 18:06:59
516
1
原创 Java线程池
import java.util.concurrent.*;/** * 线程池的执行流程: * 1.一个新的任务需要执行,判断核心线程是否已满,未满直接由核心线程执行 * 2.如果核心线程已满,判断队列是否已满,未满,则放入队列中等待前面的任务执行完 * 3.队列已满,就在最大线程池的允许范围内重开临时线程执行 * 4.如果最大线程都已经达到了,那就直接走解决策略 */public class ExecutorsDemo { public static void main(Stri
2022-05-26 19:08:20
116
原创 js实现拦截器进行请求处理
js实现拦截器因为公司需求,在前端请求接口的过程中,我们的某个接口参数必须经过一次加密,因为用到这个接口的地方有点多,如果在对应的业务js文件中一个一个改,那工作量就有点大了,幸好这些页面中都有使用到一个公共js,那么我们直接在里面通过ajaxSetup实现类似拦截器的效果。 废话不多说,直接上代码。需要注意,我的后端是用的java哦,解码也是用的java。公共js //其他逻辑处理代码省略... //字符串转base64 function getEncode64(str){
2022-04-27 09:01:12
2728
原创 使用PowerDesigner整理PDM
使用PowerDesigner整理PDM由于公司需要,开始学着使用PowerDesigner,实在没法去官网下载,于是在网上找了个16.5版本的。 先介绍一下PowerDesigner,PowerDesigner是一款非常全面的数据库设计工具。使用PowerDesigner可以快速创建表,支持表与表之间建立关系,界面简洁,功能强大。同时支持将sql脚本导出,多种导出类型任意挑选,简单实用。创建物理模型打开PowerDesigner,直接开始创建。如图所示,填写好我们的模型名称并选择对应的数
2022-01-06 17:52:15
2432
原创 java 正则表达式的几种预查的用法和区别
正则表达式工作中经常会用到,不过预查我却很少用到,几种预查的写法总是记不住,去网上搜索了一下,总感觉说得不是很通俗易懂,我怕以后还会忘记,今天做一下总结。 直接用java中的replaceAll()方法,因为replace是支持正则表达式进行替换的,这样可以很明显的看出几种预查的区别和效果。public class test { public static void main(String[] args) { String a = "this is my test";
2021-12-28 17:58:00
429
原创 mysql获取昨日开始时间和结束时间最简单粗暴的写法
记一下mysql获取昨日开始时间和结束时间最简单粗暴的sql写法SELECT CONCAT(DATE_FORMAT(DATE_SUB(now(), INTERVAL 1 DAY), '%Y-%m-%d'), '00:00:00');SELECT CONCAT(DATE_FORMAT(DATE_SUB(now(), INTERVAL 1 DAY), '%Y-%m-%d'), '23:59:59');
2021-11-29 10:43:50
853
原创 谷歌浏览器跨域问题解决
跨域问题解决前景提要:因业务需要,服务1的前端需要获取到服务2的session中的某一个值,浏览器用的谷歌浏览器。 因为谷歌浏览器的安全机制,浏览器在跨域的时候不允许request请求携带cookie,所以每次请求我都拿不到之前session里面存放的数据,详细情况可查看这篇文章:https://blog.csdn.net/leonjack123/article/details/108219144。 在说之前要先知道session是个啥,如果连session都没有基本概念的,请查看:https
2021-11-03 09:00:15
969
原创 超详细的canal使用总结
超详细的canal使用总结canal的介绍 canal,译意为水道/管道/沟渠,从官网的介绍中可以知道,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费。 这是一张官网提供的示意图:官网的解释最权威,我就直接引用一下官网的原话,另,附上官网地址:https://github.com/alibaba/canal基于日志增量订阅和消费的业务包括数据库镜像数据库实时备份索引构建和实时维护(拆分异构索引、倒排索引等)业务 cache 刷新带业务逻辑的增量数据处理
2021-10-12 17:18:33
13137
7
原创 远程项目更改git用户
远程项目更改git用户背景:公司有位同事离职了,我接手他之前负责项目,同时使用的也是他的电脑,但是提交了几次代码后发现使用的居然是他之前的git账号在提交,现在需要使用我自己的git账号,那就需要把他之前使用的git账号更换掉。确认git信息 首先要找到你的远程项目,右键,选择Git Bash Here打开命令窗口。 使用git config --local --list命令查看配置列表,嗯,确认没问题。使用git config user.name命令和git config user.
2021-09-16 15:41:45
559
原创 Maven的使用经验分享
Maven的使用经验分享首先明确一下Maven的概念,Maven 是一个项目管理工具,可以对 Java 项目进行构建、依赖管理。。pom文件 使用Maven时,接触最多的就是pom文件了,POM( Project Object Model,项目对象模型 ) 是 Maven 工程的基本工作单元,是一个XML文件,包含了项目的基本信息,用于描述项目如何构建,声明项目依赖,等等。 所有 POM 文件都需要 project 元素和三个必需字段:groupId,artifactId,version。举
2021-09-09 15:58:26
309
原创 分布式全面总结
今天对分布式做一些简单的总结,说实话,学习一门技术,主要还是学习它的设计理念和思想。注册中心当前流行的注册中心有哪些:nacos:支持AP和CP(默认是AP),可通过配置自己调节,使用的Raft算法。zookeeper:支持CP,保证的一致性,使用的zab协议,采用中心化思想,所以必须有主节点。通过半数原则选出主节点,但弊端就是如果节点挂掉超过一半,整个集群就无法使用。eureka:支持AP,保证的可用性,通过去中心化思想的方式,即没有主节点,或者每个节点都算主节点,只要节点不全部挂掉,就依
2021-07-09 17:39:42
299
原创 MySQL佛系笔记
MySQL佛系笔记 之前为了找MySQL的资料在网上翻来翻去,感觉很麻烦,所以现在为了自己方便,借鉴了不少大神的文章,东拼西凑再加上自己的理解进行整合,主要是为了方便自己以后看。MVCC的理解 MVCC,即多版本并发控制,是一种并发控制的方法。MVCC在MySQL InnoDB中的实现主要是为了提高数据库并发性能,用更好的方式去处理读-写冲突,做到即使有读写冲突时,也能做到不加锁,非阻塞并发读。 MVCC的核心主要是,三个隐式字段,undo日志,Read View(读视图)。三个隐式字段
2021-06-10 17:40:25
80
原创 使用QLExpress动态制定计算公式
QLExpress的使用最近公司要统计一些数据,需要定义一些统计数据的计算公式,然后通过计算公式统计数据。于是我去找了找有没有什么好用的工具。说实话,现在做开发,网上能找到许多实用的工具,而且还是开源的,非常感谢大佬们的分享。今天要说的是QLExpress。QLExpress的简单介绍 QLExpress由阿里的电商业务规则、表达式(布尔组合)、特殊数学公式计算(高精度)、语法分析、脚本二次定制等强需求而设计的一门动态脚本引擎解析工具。它具有以下特性:线程安全。高效执行。弱类型脚本语言。
2021-05-13 14:56:21
3308
2
原创 记一次奇怪的DataIntegrityViolationException异常处理
记一次奇怪的DataIntegrityViolationException异常处理梦开始的地方 最近开发的时候出现了一次DataIntegrityViolationException异常,当时我也没太在意,因为开发里出现一个小小的bug也是正常的,于是我就开始百度,然后我就发现了事情的不对劲。因为百度出来的这个都是说是在更新数据库时出现的异常,但是我其实是做的查询操作。 先说一下用到的框架,是SpringBoot+Mybatis,当时是需要做一个数据统计。结构大概如下:VO,num1和num2
2021-04-08 16:02:22
5247
13
原创 Java流(Stream)
Java流(Stream) Java 8添加了一个新的抽象称为流Stream,可以让我们以一种声明的方式处理数据。当然新特性什么的就不说了,毕竟现在Java 16都出了,这算老特性了。只是平时工作中还是经常能用到,确实比较方便,所以今天写个总结。 为了方便理解,就少来点理论,直接以实战代码为主进行分析。想要了解实现原理,建议看看源码,这里只讲使用方法,不扯远了,还是先来看看它的定义:什么是 Stream?Stream(流)是一个来自数据源的元素队列并支持聚合操作元素是特定类型的对象,形成一个
2021-04-06 09:52:30
2254
原创 CyclicBarrier的使用
CyclicBarrier的使用 今天闲着没事,复习了一下以前的知识,然后看到了CyclicBarrier这个类,在平常开发中确实用得比较少,于是今天写了一个我最喜欢的英雄联盟的例子来加深一下影响。 首先来看一下这个类的定义,CyclicBarrier类:允许一组全部等待彼此达到共同屏障点的辅助类,循环阻塞在涉及固定大小的线程方的程序中很有用,屏障被称为循环,因为它在被等待线程释放后重新使用。 这个定义是我在网上找到JDK中文文档的翻译,由于英译中并且它本身就解释得有点抽象,所以看起来有点难理解
2021-03-22 09:13:33
106
原创 代理模式
代理模式静态代理 这里就举个例子,比如你某天要去上班,但是车突然坏了,然后你又急着去上班,所以将叫人将车拖到到店里交给修理工去修车,然后你自己就正常的去上班了。首先定义一个接口,接口里就可以定义你需要代理的方法public interface Repair { void repair();}定义被代理类。public class You implements Repair{ @Override public void repair() { S
2021-03-09 17:39:52
107
原创 zookeeper选举算法
zookeeper学习笔记paxos算法学习zookeeper就要先了解一下paxos算法,paxos算法是分布式中保证一致性的一种算法,它可以保证在节点失效、网络分区、网络延迟等情况下各个节点状态的一致性。paxos算法引入了半数原则,也就是少数服从多数的原则。paxos有三个版本:Basic PaxosMulti PaxosFast Paxos(ZAB协议就基于Fast Paxos的)paxos算法中有3种角色:Proposer:提案者。Acceptor:决策者,是否接受该提案,
2021-01-29 14:32:41
910
2
原创 Nginx学习笔记
nginx的基本概念Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like协议下发行。由俄罗斯的程序设计师IgorSysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рамблер)使用。其特点是占有内存少,并发能力强。nginx的两大作用反向代理先说说正向代理,客户端先请求的代理服务,再由代理服务器去访问web服务器,在此过程客户端并不会直接访问到web服务器。打个比方,就好比VPN,用的都知道,我们平时想
2021-01-27 12:03:13
255
原创 JVM学习总结
JVM学习笔记运行时方法区Java栈栈是一种数据结构,程序=数据结构+算法,现在也可以说成:程序=框架+业务逻辑,毕竟现在框架太多,用起来也很方便,很多公司都开发都是这样用的。栈是先进后出,可以和队列对比,队列是先进先出。栈里一般存放的都是:8大基本数据、对象的引用、实例的方法栈是不存在垃圾回收机制的,因为栈内存主管程序运行,生命周期和线程同步。线程结束后,栈内存也就释放了。举个例子:在主程序main()方法中调用test()方法,当test()方法执行完后,栈就会立马
2021-01-26 17:19:08
97
原创 Java集合学习总结
Java集合 在Java中,有很多种方式可以用来表示集合,一般常用的就是Collection接口(编程时,一般使用的他的子类,List接口和Set接口)、Map接口和数组。CollectionListArrayList:底层数据结构是数组(动态数组),查询快(因为底层是数组,可以根据下标快速查找),增删慢,线程不安全,效率高,可以存储重复元素什么是动态数组?我们知道,在Java中数组一旦初始化,那么长度就固定了,而动态数组不存在这个问题。动态数组的实现原理:自己封装一个类用于实现
2021-01-20 16:10:23
142
原创 redis事务学习
redis事务redis事务的介绍redis事务的本质:一组命令的集合。redis单条命令保证原子性,但是事务不保证原子性。 一个事务中所有的命令都会被序列化,在事务执行过程中,会按照顺序执行,但是redis事务是没有隔离级别的概念的。所以redis的事务具有以下特性:一次性,顺序性,排他性。 redis事务的执行过程:开启事务。命令入队。执行事务。如何使用事务multi // 开启事务// 以下操作就是命令入队set key1 value1set key2 value2
2021-01-19 15:31:40
461
原创 redis常用命令记录
redis的基本命令select 1:选择数据库1。(redis一共有16个数据库)keys *:查看所有的key。set age 1:设置key为age,value为1。get age:获取key为age的value。exists age:判断key为age的数据是否存在(返回1为存在,0为不存在)。move age 1:从数据库1中移除key为age的数据。expire age 10:设置key为age的数据10秒后过期。ttl age:查看key为age的数据还剩多久过期。type
2021-01-18 20:20:20
111
原创 微服务学习
什么是微服务我们原本的部署服务的方式就是将我们的项目打包成一个包,然后直接部署到我们的服务器上,如果有需要,再搞个负载均衡,这样来分担一下服务器的压力。但这样做的坏处就是:所有的东西都放在一个项目中,过于臃肿,而且编译和部署效率低下,如果没有热部署,一旦有更新,就需要停掉整个服务,直到更新结束,如果出现了一个小问题就有可能导致整个服务崩掉。当然也有好处:方便管理,所有代码在同一项目中,虽然部署效率低下,但是对于维护来说,只需要打一个包就够了。 微服务就是将我们的某个具体的业务模块拆分成一个小的服务,其
2021-01-15 18:26:25
148
原创 七步了解SpringBoot自动装配
spring boot是spring的拓展和优化,因为spring原本理念是简化开发,但是因为集成的东西太多,现在已经成了配置地狱,完全违背了它原本意愿,当然不可否认的是,spring几乎接近于完美了。而spring boot更接近于完美,其中自动装配是非常重要的,而其核心理念就是约定大于配置。什么是约定大于配置呢,用官方一点的话就是:约定优于配置(convention over configuration),也称作按约定编程,是一种软件设计范式,旨在减少软件开发人员需做决定的数量,获得简单的好处,而又
2021-01-10 14:26:09
718
使用mysqldump备份数据时,如果中途有数据变更,那么变更的数据会存入备份中吗
2021-10-21
求推荐一种同步数据的工具
2021-10-14
TA创建的收藏夹 TA关注的收藏夹
TA关注的人