自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

代码搬运工的博客

只会crud的程序猿

  • 博客(59)
  • 资源 (4)
  • 收藏
  • 关注

原创 关于xxljob-2.3.x版本使用及告警邮箱配置

xxljob从2.3.0开始做了一些改变,查看源码发现有很多变动,其中包括handler的实现方式、注解等,记录一下:依赖<dependency> <groupId>com.xuxueli</groupId> <artifactId>xxl-job-core</artifactId> <version>2.3.0</version></dependency>配置@S

2022-01-07 10:53:50 3407

原创 mybatis中操作json类型数据

mysql使用json类型字段保存数据,使用mybatis进行新增、查询操作,实现字段映射转换自定义TypeHandlerpackage com.xxx.xxx.handler; import java.io.IOException; import java.sql.CallableStatement; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLExcepti

2021-11-25 14:33:08 11652 1

原创 码出高效-java笔记-JVM

字节码java所有指令200个左右,一个字节(8位)可以保存256种不同的指令信息加载或存储指令将局部变量加载到操作栈中从操作栈顶存储到局部变量表将常量加载到操作栈顶(极为高频)运算指令类型转换指令对象创建与访问指令操作栈管理指令方法调用与返回指令同步指令jvm使用方法结构中的acc_synchronized标志同步方法,Synchronize语义通过monitorenter和monitorexit实现.java文件不是可执行文件,需要编

2021-11-17 21:45:06 728

原创 关于监控nacos服务实例数量以及告警钉钉消息通知

需求:监控指定系统的实例数量,在有节点掉线时进行钉钉消息推送代码:import com.alibaba.nacos.api.naming.NamingFactory;import com.alibaba.nacos.api.naming.NamingService;import com.alibaba.nacos.api.naming.listener.NamingEvent;import com.alibaba.nacos.api.naming.pojo.Instance;import co

2021-11-08 14:43:38 3362

原创 码出高效-java笔记——面向对象

关于面向对象里氏代换原则LSP:任何父类能够出现的地方,子类都能够出现谨慎使用方法继承方法继承带来的危害性:方法污染:父类具备的行为通过继承传递给子类,子类不具备执行此行为的能力方法爆炸:指继承树不断扩大JDK进化史JDK8:Lambda表达式、函数式接口、Stream流等JDK9:模块化、进程改善和锁机制优化、代码分段缓存等JDK10:改进GC和内存管理等JDK11:提供实验性质的可扩展的低延迟垃圾收集器ZGC等JDK12 :Switch表达式功能增强、G1收集器优化

2021-10-21 21:35:27 56

原创 Minio工具类-java

配置项#minIO 地址minio.endpoint= xx.xx.xx.xxminio.port= xxxxminio.accessKey= devkeyminio.secretKey= 123456minio.secure= falseminio.bucketName= dev配置@Data@Component@ConfigurationProperties(prefix = "minio")public class MinioConfig{ private S.

2021-09-29 16:29:17 1404 3

原创 centos7单机搭建elk

elasticsearch安装下载elasticsearch安装包官网elk三件套下载下载后使用tar -zxvf解压缩安装包,解压后进入目录,目录结构如下bin目录存放了启动脚本,config目录存放了es相关的配置,启动之前进入config目录目录内包含了以上的配置文件,这里只修改elasticsearch.yml配置文件,使用vim命令编辑主要设置一下几个属性:cluster.name: dell-application # 节点名称path.logs: /etc/elasticse

2021-08-16 17:33:50 550

原创 mysql8.0遇见Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre的问题解决

mysql版本8.0,使用group by语句时提示Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre的错误信息,经查需要修改默认的sqlmode,默认的sqlmode是ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_E.

2021-08-08 17:21:31 1428 1

转载 关于mysql数据库该选择RR隔离级别还是RC隔离级别的问题

mysql中常见的隔离级别一般就是RR(可重复读)、RC(读提交)、Read UnCommitted(读未提交)、Serializable(串行),因为读未提交会导致一个事务读到另一个事务的未提交的改动,适合这样级别的情景并不多,所以读未提交在我接触中几乎没有使用,而串行级别由于其性能限制,通常也不会使用,所以更多的情况是讨论RR和RC两个隔离级别应该怎么选,先说结论,通常选用RC——读提交隔离级别。至于为何选用RC级别,以及RC和RR相比有什么优势看到一篇文章说的非常清楚链接——互联网项目中mysql

2021-08-02 22:43:11 1738

原创 ssh连接虚拟机设置免密登录——带端口

免密登录服务器背景问题解决步骤ssh连接方法:设置免密登录背景家中有一台虚拟机安装了Linux系统,宽带申请了公网ip,并通过ikuai的动态域名解析绑定了自有的一个域名,通过端口转发设置访问该Linux系统问题如何通过域名+端口ssh连接家庭Linux虚拟机如何设置免密登录解决步骤ssh连接方法:ssh -p 9150 root@域名此处9150是我暴露在公网的端口,通过ikuai进行端口转发到家中的Linux主机。到这一步会提示你输入密码,输入成功后即可ssh连接成功设置免密登录

2021-06-07 17:03:43 1662

原创 关于redis主从复制模式下过期键的删除策略问题

最近在看《redis设计与实现》这本书时,看到redis过期键的删除部分,书中在讲主从复制模式下的过期键的删除时说道:从服务器不控制过期键的删除,只有主服务器删除一个过期键并显示的向从服务器发送一条del命令的时候,从服务器才会删除过期键,在这期间,即使从服务器在执行读命令,遇到过期键也不会将过期键删除。读到这里的时候我产生了一个疑问,想到如果一直以从服务器处理读请求,那岂不是永远无法触发主服务器发出del命令,过期键岂不是无法被删除,那过期时间的设置就没有了意义。通过多方面查找资料,查看到redis官方

2020-11-23 19:49:50 1402 11

原创 node实现树形数据的导入

最近因工作需要接触了一下node,使用过程中遇到了一个需求,需要编写一个脚本,将Excel中的数据插入数据库,但是这个数据是一个树形结构,插入数据库需要插入当前叶子节点的父节点。像上图一样,每行都是一个数据,每行的最后一个数据就是要保存的节点,摆上库表结构:问题的难点便是导入数据的时候找到节点的父节点id,这里只有路径的中文名称,所以根据中文名称去查询id会遇到名称相同的情况,这样的情况id就不是唯一了,该怎么选择呢?通过思考,既然给出了中文的路径,也可以用这中文的路径去判断到底应该选哪个父节点呀

2020-11-02 15:17:42 550

原创 Mac启动Tomcat报错,权限问题解决

使用终端在启动Tomcat的时候遇到了一个权限问题:先是在IDEA中配置Tomcat进行启动项目的时候无法启动,弹窗报错意思就是Tomcat的bin目录下没有权限,然后找到Tomcat目录看看使用命令是否能够启动Tomcat,使用终端输入命令./startup.sh结果发现报错了,报错信息如下:根据提示知道是因为权限问题导致的操作被拒绝,开始看到这个提示便想到用chmod命令去给文件授权,通过终端命令到达Tomcat的bin目录下,通过chmod 777 *.sh来给所有的.sh后缀的shell脚本

2020-08-13 15:14:05 1320 3

原创 关于线程创建的方式

总结:线程创建常用的方式有三种,分别是:继承Thread类实现Runnable接口实现Callable接口继承Thread类的方式public class threadClassDemo extends Thread{ int count = 1; @Override public void run() { count++; System.out.println("当前线程:"+Thread.currentThread().getNam

2020-08-12 22:47:13 172

转载 看懂UML类图

网址:https://design-patterns.readthedocs.io/zh_CN/latest/read_uml.html讲解了各种设计模式

2020-04-30 17:15:15 249

原创 关于SpringBoot项目连接数据库启动报错问题解决

话不多说,直接上异常信息:整个错误信息的意思就是服务器的时区值无法识别或者是存在多个值,如果要正常使用就需要给服务器或者jdbc驱动配置serverTimezone。整体的意思就是这样,那下面探索如何解决这个异常:方法一如图,在配置文件中的数据库连接的url后面添加serverTimezone=Asia/Shanghai的设置,即可解决启动报错问题。等等,这是在每个连接的URL后面添...

2020-04-29 22:16:20 4632

原创 IDEA更新至2020.1版本后启动闪退

先上一张启动IDEA闪退的报错信息:不管是重启IDEA还是重启电脑,IDEA始终打不开,但这里的错误信息看不懂,只好去看一下IDEA的启动日志,IDEA 的启动日志2020版本与2019版本稍有不同,进入这个目录,可以看到下列文件:使用cat命令查看日志:看到日志可以发现错误是因为插件findBugs问题,因为IDEA是最新版本,猜测可能是findbugs版本不支持,造成的兼容性问...

2020-04-10 16:50:23 7191

原创 关于IDEA自定义live templates日期格式错误问题的解决方法

在使用IDEA的自定义live templates时,之前一直使用date()获取当前时间,在Mac上使用一直没出现问题,时间也都是正常显示:但是在Windows上使用时,显示的时间却会多四位数字:这是为什么呢?在windows中会受短日期格式影响,默认为设置yyyy/MM/dd,如果我们改动了就会影响idea中的注释模版,常见的我们会在短日期中写成yyyy/MM/dd dddd这样...

2020-03-08 21:51:32 6580 1

原创 IDEA序列化UID生成

进入IDEA进行上述设置,然后进入要生成序列化的对象:会出现提示的下划线,使用option+enter快捷键(Windows系统alt+enter),即可插入UID。

2020-03-06 15:36:49 649

原创 HTTP请求工具类——Java

使用RestTemplate方式,注意添加spring-web的依赖工具类如下:import org.springframework.http.*;import org.springframework.http.converter.StringHttpMessageConverter;import org.springframework.util.MultiValueMap;imp...

2020-03-05 15:44:57 326

原创 使用Nacos实现服务注册发现,使用feign进行远程调用

Nacos的本地部署不做详细介绍,下面主要记录一下使用Nacos注册、暴露服务,使用feign进行远程调用的过程:1、首先找到一个项目作为生产者,即服务提供者,进行配置后注册到Nacos注册中心,注意:此处的name要注意,他是消费者消费服务查找服务的关键字。生产者的启动类要添加一个注解@EnableDiscoveryClient,实现负载均衡具体的服务接口:2、消费者注册到Naco...

2020-03-04 11:14:41 19297 3

转载 hashMap长度为什么是2的幂次方

HashMap为了存取高效,要尽量较少碰撞,就是要尽量把数据分配均匀,每个链表长度大致相同,这个实现就在把数据存到哪个链表中的算法;这个算法实际就是取模,hash%length,计算机中直接求余效率不如位移运算,源码中做了优化hash&(length-1),hash%length==hash&(length-1)的前提是length是2的n次方;为什么这样能均匀分布减少碰撞呢...

2020-03-01 11:09:56 7064 6

原创 剑指offer第二版图书与代码

链接: https://pan.baidu.com/s/1qOmwvc66o2nROY9pjinnmw 提取码: 8jy4

2020-02-29 16:46:52 263

原创 使用Mybatis遇到的坑——Integer类型参数的解析问题

有时候我们使用实体类传递参数时,有些属性会被设置为Integer类型,比如status、sort等,在这里,使用Integer类型参数作为条件时,要注意一点:例如<if test="bean.activitySort != null and bean.activitySort !="""> AND activity_sort = #{bean.activitySort...

2020-02-18 16:38:05 3997

原创 关于List的subList原理分析

今天在看Java开发手册的时候看到这么一句话:如果需要对list某个范围内的元素进行操作,可以使用subList,任何对子列表的操作最终都会反映到原列表中。例如list.subList(0,2).clear;这样的操作便会对原列表进行修改,修改的结果是截取除了0-2位置的元素,下面写下代码试一下:运行结果:我们看到原列表已经被修改,那么为什么对子列表的修改会影响到原列表呢,我们进入...

2019-12-18 11:19:58 3468

原创 docker镜像加速使用方法

使用docker加载镜像通过使用:docker pull registry.docker-cn.com/library/XXX(你要拉取的镜像的名字)即可借助镜像加速实现快速下载

2019-12-15 21:11:49 291

原创 fastCSV实现上传CSV文件

实现上传CSV文件的工具有很多,下面直接上代码首先是添加依赖:<dependency> <groupId>de.siegmar</groupId> <artifactId>fastcsv</artifactId> <version>1.0.3</...

2019-12-09 11:37:06 1140

原创 关于Java并发中的volatile与synchronized关键字

synchronized关键字在介绍之前,首先从场景出发,思考一下下面的场景: public List<String> list = new ArrayList<>(); public void dealList(List<String> list){ /*对list进行增删处理*/ /*list.add(); ...

2019-11-27 10:03:23 158

原创 关于String对象的compareTo方法实现原理

通常在对String对象进行比较时使用jdk给我们提供的compareTo方法可以说是非常轻松方便的,但是compareTo方法的实现是怎么实现的呢?下面通过看一下源码来研究一下:通过查看源码,我们可以发现,通过将两个字符串存储在char类型数组中,选择最短的一个字符串,然后从第一位遍历两个数组,返回第一个不相同字符的ASCII码(十进制)相减的结果;如下: "abcd".compa...

2019-11-12 16:10:34 906

原创 使用IDEA导入包时避免自动引入import.*包

使用IDEA时,有时一个工程要重复引入一个包下的各种子包,此时当你重复的次数达到一定标准,IDEA便会自动将你的子包简化为*,这样在自己的工程中没有什么问题,但在工作中,一定要避免这样的修改,以免修改了其他人的代码,这样如果发生事故,根据代码提交记录,便会由你来背锅,下面来写一下如何修改IDEA中重复导入包的限制次数,避免自动引入import.包红色方框内的数字自己可以自己设置,当重复导入的...

2019-11-11 16:14:50 12911 1

原创 Zookeeper隐藏通道问题

使用Zookeeper最容易犯的错误便是隐藏通道问题,什么是隐藏通道问题呢如上图,隐藏通道问题即,客户端c1操作了Zookeeper,然后通知客户端c2读取Zookeeper中的状态,但是c2客户端读取Zookeeper状态时,c1对Zookeeper的操作还没有及时的更新,所以此时c2读取的Zookeeper状态是错误的隐藏通道问题造成的原因:C1直接向C2发送通知解决方法:使用Zo...

2019-11-06 10:58:55 254

原创 有关RabbitMQ使用经历

今天在项目中使用RabbitMQ的时候,由于是在老项目中新引入MQ,所以遇到了一些问题,于是把这次使用经历记录下来。因为项目比较老,查看spring版本居然是3.2.3版本,可以说相当老了,按照网上的帖子添加有关RabbitMq的依赖时就遇到一个问题:版本不兼容问题错误信息:org/springframework/util/backoff/BackOff的错误这个错误便是因为引入的R...

2019-10-16 16:18:20 140

原创 springBoot之helloworld

创建一个基本的maven工程,首先添加下列标签,使项目成为一个SpringBoot项目:<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> ...

2019-09-05 10:27:15 142

转载 关于Java8中stream的笔记

简介java8也出来好久了,接口默认方法,lambda表达式,函数式接口,Date API等特性还是有必要去了解一下。比如在项目中经常用到集合,遍历集合可以试下lambda表达式,经常还要对集合进行过滤和排序,Stream就派上用场了。用习惯了,不得不说真的很好用。Stream作为java8的新特性,基于lambda表达式,是对集合对象功能的增强,它专注于对集合对象进行各种高效、便利的聚合操作...

2019-08-29 09:29:23 123

原创 关于影响Redis性能的几点因素

Redis的使用是为了提高数据的查询速度,所以对于Redis使用时效率越高越好,那都有那些方面会影响Redis的性能呢,主要包括了一下几个方面:长耗时命令的执行在算法中影响一个算法效率的是方法的时间复杂度,同样,在Redis中时间复杂度仍然是影响Redis执行效率的因素,Redis中大多数的命令执行的时间复杂度都在O(1)到O(N)之间,O(1)的命令通常来说是安全的,O(N)的命令在使用时...

2019-08-26 15:12:57 1322

原创 有关Java学习的图书整理

今天抽空整理了一下手上的图书资源,主要是技术方面的,都是Java方向所需要的图书,有需要的童鞋可以自己下载,有Java基础、JVM、多线程、数据库、MQ、Redis等常用的材料,链接如下:链接: https://pan.baidu.com/s/1qnAXtKaPLcEkGrFjusz7tA 提取码: 9nma 复制这段内容后打开百度网盘手机App,操作更方便哦...

2019-08-15 22:33:55 120

原创 关于日志打印中的占位符的使用

在日志打印时,多数是推荐使用占位符来进行参数的设置的,今天使用sonarqube扫描代码时,发现一些日志打印时的占位符与参数数量不匹配的问题,很多都是占位符数量多于参数数量,我便产生了疑惑,如果数量不匹配,占位符没有赋值的位置会怎么显示,于是便敲了一个小demo验证一下,结果如图:上图是占位符数量与参数数量一致时,打印结果是正常的,下面测试一下缺少一个参数时:结果显示没有进行赋值,这里只是...

2019-08-06 11:43:02 16546

转载 Java多线程-线程池ThreadPoolExecutor构造方法和规则

为什么用线程池有时候,系统需要处理非常多的执行时间很短的请求,如果每一个请求都开启一个新线程的话,系统就要不断的进行线程的创建和销毁,有时花在创建和销毁线程上的时间会比线程真正执行的时间还长。而且当线程数量太多时,系统不一定能受得了。使用线程池主要为了解决一下几个问题:通过重用线程池中的线程,来减少每个线程创建和销毁的性能开销。对线程进行一些维护和管理,比如定时开始,周期执行,并发数控制等...

2019-08-05 11:42:52 96

原创 关于Java中关于继承的思考记录

今天看到JVM机时突然想到一个问题,就是面向对象中的继承,为什么要使用继承呢,继承就全都是优点吗?继承中子类继承父类后继承得到的属性方法是复制到子类内存空间中的吗,如果不是那还能用什么方法,指针引用也不行呀,都知道子类继承后使用点运算符对继承属性的修改是不会影响父类的,那么子类对继承属性的修改必然是使用一块不同于父类内存的新内存块,为了验证子类继承后地址与父类地址不同,并且修改后的继承属性对父类...

2019-08-03 14:37:43 178

原创 对于MQ中的问题记录

作为一名MQ的初学者,在学习之初有很多疑问,本文章主要记录作者在学习过程中对于一些问题的记录。在我看来mq可以看作是一个注册中心,有消息的提供者和消费者,提供者产生消息后将消息添加至“注册中心”,然后等待消费者到“注册中心”进行消费。这个过程中有几次通讯行为,当涉及到通讯问题时不免要考虑到通讯过程中的通讯中断带来的消息丢失问题,造成消息丢失的条件有很多,今天主要记录一种情况,我们都知道,在MQ中...

2019-07-30 15:07:09 153

git可视化工具Mac版本

sourceTreeMac版本,用于管理Git仓库,可以进行远程仓库创建、代码提交拉取、分支创建等操作,标准的图形化界面

2020-12-07

MongoDB桌面工具1903版本

用于管理MongoDB连接,可以进行多个连接管理,快捷查询等操作,支持多种查看方式:表格、树状、json格式等

2020-12-07

数据库连接可视化工具

一款好用的mysql、oracle、MongoDB等数据库的连接工具,适用于MacOS系统,Navicat可视化连接工具,免激活,安装即用

2020-12-07

MOS云平台开发手册.pdf

本文档是玄武集团下的MOS云平台的开发手册,对于MOS云平台的使用做了详细介绍

2019-05-16

空空如也

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

TA关注的人

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