自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 资源 (2)
  • 收藏
  • 关注

原创 JWT生成Token小demo

快速了解Token小demo

2023-03-01 00:06:18 254

原创 生产日志常用查询命令

生产日志常用查询命令

2022-07-19 15:32:12 674

原创 list集合去重、过滤、分组、获取数据、求最值、合并、排序、跳数据和遍历

list集合去重、过滤、分组、获取数据、求最值、合并、排序、跳数据和遍历

2022-07-15 19:34:09 5122

原创 json串 转 list<class> 方法 List转JSONArray和JSONArray转List

json串 转 list<class> 方法 List转JSONArray和JSONArray转List

2022-07-13 20:29:47 189

原创 借助Redis的过期机制和分布式锁实现定时任务

一、固定执行定时任务的机器方法:在多台机器中选择一台执行定时任务,每次执行的时候回判断当前机器和指定的机器是否一致或者启动时就指定好执行机器优缺点:这种方法是可以有效避免多次执行的情况,,但是最明显的缺点就是单点故障问题,如果你指定的机器出现了宕机,,任务就不会执行了,业务逻辑就会奔溃。二、在数据库建立多张表,从定时任务表中获取定时方法方法:由于MySQL存在表锁和行锁(MyISAM引擎只支持表锁,而InnoDB支持行锁和表锁两种),每次执行定时任务的时候从数据库表中读取记录,只有读取到的记录标识当前任务状

2022-07-13 20:22:39 1340 1

原创 AC 算法,返回命中标签

AC自动机算法简介Aho-Corasick算法简称AC算法,通过将模式串预处理为确定有限状态自动机,扫描文本一遍就能结束。其复杂度为O(n),即与模式串的数量和长度无关。1、简要概述什么是AC自动机算法?​ AC自动机算法是一种多模式字符串匹配算法,什么是多模式?从单模式说起,举个kmp算法的例子,单模式就是利用kmp算法验证某个敏感词在一个字符串内是否存在;多模式是说验证多个敏感词在一个字符串内是否存在。如果使用kmp来做的话,依次遍历多个敏感词,每个敏感词使用kmp验证,当敏感词数量很多的时候

2022-03-07 19:53:03 453 5

原创 Java的循环遍历,如何保证每个循环体都是单独的事务

import org.apache.commons.lang.StringUtils;import org.apache.log4j.Logger;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import org.springframework.transaction.annotation.Propagation;import

2022-03-07 19:50:56 781

原创 nginx代理后刷新显示404

1、错误的配置(看看自己是不是这样配置的)原因:原因是因为web单页面开发模式,只有一个index.html入口,其他路径是前端路由去跳转的,nginx没有对应这个路径,当然就是404了。location / { alias /home/vue/dist/; index index.html; }2、正确的配置应该是:location / { alias /home/vue/dist/; index index.html; try

2022-01-11 19:40:27 3121

原创 整理出两个前端小功能(复制按钮和自动 mouseenter 事件)

1、复制按钮(粘贴复制即可用)<script type="text/javascript">function copyText(){var txt=document.getElementById("textID");txt.select(); // 选择对象document.execCommand("Copy"); // 执行浏览器复制命令alert("已复制好,快去粘贴吧!");}</script><textarea cols="20" rows="10

2021-12-22 19:57:00 702

原创 时间格式处理

1、 November 26, 2021 19:48类型的时间格式处理转换前:November 26, 2021 19:48 转换后:2021-11-26 19:48import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Locale;public class TestSj

2021-11-26 19:52:55 457

原创 AOP实现Sign签名和AOP获取签名里的参数

什么是AOP?在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。什么是Sign签名Sign签名的方式能够在一定程度上防止信息被篡改和伪造,保障通信的安全,

2021-06-09 18:18:50 1212

原创 缓存初始化

@PostConstruct基本:@PostConstruct注解好多人以为是Spring提供的。其实是Java自己的注解。Java中该注解的说明:@PostConstruct该注解被用来修饰一个非静态的void()方法。被@PostConstruct修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器执行一次。PostConstruct在构造函数之后执行,init()方法之前执行。通常我们会是在Spring框架中使用到@PostConstruct注解 该注解的方法在整个Bean初始化

2021-04-02 17:51:12 242

原创 开发中非常好用IDEA插件

工作中常用的8款IDEA插件,后端和前端的都有,附上使用技巧,看完之后开发效率杠杠的!1.LombokLombok为Java项目提供了非常有趣的附加功能,使用它的注解可以有效的地解决那些繁琐又重复的代码,例如 Setter、Getter、toString、equals、hashCode 以及非空判断等。举个例子,我们给一个类添加@Getter和@Setter注解:/** * 修改订单费用信息参数 * Created by macro on 2018/10/29. */@Gette.

2021-03-16 13:52:28 509

原创 安装和部署vue项目

Windows下的安装及部署1、下载nodejs并安装:https://nodejs.org/en/2、通过cmd窗口进入自己的前端项目3、输入命令安装相关依赖:npm install4、在cmd控制台中输入如下命令:npm run dev5、访问地址http://localhost:8091 查看效果:Linux下的部署1、进入项目中使用:npm run build 命令打包vue项目2、打包后的代码位置3、把打包后的代码放到nginx下面就可以了...

2021-03-05 15:26:46 115

原创 MySQL导入数据量过大报错解决办法

1、插入数据库数据量过大,出现失败,怎么办?解决办法:修改 my.ini 配置max_allowed_packet =4M(默认值),修改完成之后要重启mysql服务。(针对 mysql5.7)2、怎么修改max_allowed_packet100M以内的数据 max_allowed_packet修改为10M即可100-200M以内的数据 max_allowed_packet修改为20M即可封包太大,允许的包太小,就会因为内存不足问题,出现错误修改完之后一定要记得重启mysql

2021-03-03 11:42:58 1419

原创 Springboot整合RabbitMQ

一、搭建初始环境1、引入依赖 <!--引入与rabbitmq集成依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </dependency>2、 配置

2021-03-01 17:44:56 103

原创 CentOS7上的RabbitMQ 安装

1、下载官网下载地址: https://www.rabbitmq.com/download.html2、下载的安装包注意:这里的安装包是centos7安装的包3、安装步骤# 1.将rabbitmq安装包上传到linux系统中 erlang-22.0.7-1.el7.x86_64.rpm socat-1.7.3.2-2.el7.x86_64.rpm rabbitmq-server-3.7.18-1.el7.noarch.rpm# 2.安装Erlang依赖包 rpm -ivh erlan

2021-02-26 10:20:01 186

原创 缓存并发竞争

问题Redis 的并发竞争问题是什么?如何解决这个问题?了解 Redis 事务的 CAS 方案吗?这个也是线上非常常见的一个问题,就是多客户端同时并发写一个 key,可能本来应该先到的数据后到了,导致数据版本错了;或者是多客户端同时获取一个 key,修改值之后再写回去,只要顺序错了,数据就错了。而且 Redis 自己就有天然解决这个问题的 CAS 类的乐观锁方案。问题分析某个时刻,多个系统实例都去更新某个 key。可以基于 zookeeper 实现分布式锁。每个系统通过 zookeep

2021-02-24 17:27:48 366

原创 缓存雪崩、缓存穿透、缓存击穿

问题了解什么是 Redis 的雪崩、穿透和击穿?Redis 崩溃之后会怎么样?系统该如何应对这种情况?如何处理 Redis 的穿透?问题剖析1、缓存雪崩对于系统 A,假设每天高峰期每秒 5000 个请求,本来缓存在高峰期可以扛住每秒 4000 个请求,但是缓存机器意外发生了全盘宕机。缓存挂了,此时 1 秒 5000 个请求全部落数据库,数据库必然扛不住,它会报一下警,然后就挂了。此时,如果没有采用什么特别的方案来处理这个故障,DBA 很着急,重启数据库,但是数据库立马又被新的流量给打死了。这就

2021-02-24 17:21:27 262

原创 如何保证缓存与数据库的双写一致性?

面试题如何保证缓存与数据库的双写一致性?面试官心理分析你只要用缓存,就可能会涉及到缓存与数据库双存储双写,你只要是双写,就一定会有数据一致性的问题,那么你如何解决一致性问题?面试题剖析一般来说,如果允许缓存可以稍微的跟数据库偶尔有不一致的情况,也就是说如果你的系统不是严格要求 “缓存+数据库” 必须保持一致性的话,最好不要做这个方案,即:读请求和写请求串行化,串到一个内存队列里去。串行化可以保证一定不会出现不一致的情况,但是它也会导致系统的吞吐量大幅度降低,用比正常情况下多几倍的机器去支撑线上的

2021-02-24 16:14:15 273

原创 为什么要用缓存?缓存使用不当会造成什么后果?

一、为什么要用缓存?用缓存,主要有两个用途:高性能、高并发。1.高性能假设这么个场景,你有个操作,一个请求过来,吭哧吭哧你各种乱七八糟操作 mysql,半天查出来一个结果,耗时 600ms。但是这个结果可能接下来几个小时都不会变了,或者变了也可以不用立即反馈给用户。那么此时咋办?缓存啊,折腾 600ms 查出来的结果,扔缓存里,一个 key 对应一个 value,下次再有人查,别走 mysql 折腾 600ms 了,直接从缓存里,通过一个 key 查出来一个 value,2ms 搞定。

2021-02-24 15:58:07 901

原创 Redis常见的5中类型

一、前言Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库,并提供多种语言的 API。Redis 通常被称为数据结构服务器,因为值(value)可以是字符串(String)、哈希(Hash)、列表(list)、集合(sets)和有序集合(sorted sets)等类型。二、类型介绍1、String字符串类型2、List列表类型3、Set集合类型4、Hash散列类型5、有序集合ZSet数据

2021-02-24 14:33:10 167

原创 nginx基本配置与参数说明

#运行用户user nobody;#启动进程,通常设置成和cpu的数量相等worker_processes 1;#全局错误日志及PID文件#error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log info;#pid logs/nginx.pid;#工作模式及连接数上限events {#epoll是多路复用IO(I/O Multiplexing)中的一

2021-02-18 17:33:31 276

原创 写代码容易犯的一些小错误和踩的一些坑

1、关于基本数据类型与包装数据类型的使用标准如下:所有的POJO类属性必须使用包装数据类型。RPC方法的返回值和参数必须使用包装数据类型。所有的局部变量推荐使用基本数据类型。2、单个方法的总行数不超过80行。3、避免通过一个类的对象引用访问此类的静态变量或静态方法,无谓增加编译器解析成本,直接用类名来访问即可。4、POJO类中的任何布尔类型的变量,都不要加is,否则部分框架解析会引起序列化错误错误案例: public class DemoDO{ Bool

2021-01-13 18:22:04 4890 1

原创 事务管理遇到的坑

坑点1:遇到非检测异常时,事务开启,也无法回滚。例如下面这段代码,用户依旧增加成功,并没有因为后面遇到检测异常而回滚!!@Transactionalpublic int insertUser(User user) throws Exception{ // 新增用户信息 int rows = userMapper.insertUser(user); // 新增用户岗位关联 insertUserPost(user); // 新增用户与角色管理 insertU

2021-01-13 15:02:33 4296 1

原创 常用的在线工具

1、Markdown Nice支持自定义样式的在线Markdown编辑器,编辑完成后可以一键复制富文本到微信公众号、知乎和掘金等平台。多达17种主题,总有一种适合你的!平时用Typora写完文章以后,我都会用这个排版,然后复制到公众号,非常好用!地址:https://mdnice.com/2、Process On一款在线作图工具,支持流程图、思维导图、原型图、UML、网络拓扑图、组织结构图等。平时文章中的流程图和思维导图,我都是用这个工具画的!地址:https://www.processon.co

2021-01-12 16:55:31 4417

原创 开发中用的比较顺手的工具

1、IntelliJ IDEA:https://www.jetbrains.com/idea/download业界公认最好的Java开发工具,平时用的最多。可以安装大量插件丰富功能,开发前端应用也不在话下!2、X-shell:http://www.netsarang.com/download/software.html一款强大的安全终端模拟软件,可以用来连接和管理远程Linux服务器。3、Postman:https://www.postman.com/API接口调试工具,平时用来测试开发好的接口,

2021-01-12 16:52:13 4297

原创 Postman:API接口调试利器

Postman是一款API接口调试工具,使用它可以很方便的对接口进行测试,并且后端人员可以将自己的调试结果导出,方便前端人员调试。安装下载地址:https://www.getpostman.com/downloads/下载完安装包后直接双击安装即可。设置主题设置这里不得不说,Postman的界面还是做的很好的,比起Swagger来说好多了,Postman默认提供了两种主题,一种亮色和一种暗色,可以通过左上角的File->Settings按钮打开。调整字体大小可能界面默认的字体大小并

2021-01-12 16:35:30 4527

原创 Hutool中那些常用的工具类和方法

安装maven项目在pom.xml添加以下依赖即可:<dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>4.6.3</version></dependency>常用工具类Convert类型转换工具类,用于各种类型数据的转换。//转换为字符串int a

2021-01-11 14:08:17 5212

原创 重置Google云服务器密码

1、进入Google云实例面板2、切换到root角色sudo -i 3、修改root密码passwd[qqqqq@instance-3 ~]$ sudo su[root@instance-3 guser]# passwdChanging password for user root.New password:Retype new password:

2021-01-06 17:10:19 6114

原创 对服务器进行DDoS攻击测试

1、输入IP地址或者IP地址加URL地址,2、点击Lock on确定攻击对象3、点击 IMMA CHARGIN MAH LAZER开始DDoS4、点击Stop flooding 停止攻击软件网上有免费的,如果自己实在是找不到了,可以加我微信找我,微信:We_Chat_lx,最好不要来找我,找我必须要请我喝水的,毕竟谁的时间都不是免费的哦!...

2020-12-17 16:58:14 11308 10

原创 Serializable这个接口

1、什么是Serializable接口一个对象序列化的接口,一个类只有实现了Serializable接口,它的对象才能被序列化。2、什么是序列化?序列化是将对象状态转换为可保持或传输的格式的过程。与序列化相对的是反序列化,它将流转换为对象。这两个过程结合起来,可以轻松地存储和传输数据。3、为什么要序列化对象把对象转换为字节序列的过程称为对象的序列化把字节序列恢复为对象的过程称为对象的反序列化4、什么情况下需要序列化?当我们需要把对象的状态信息通过网络进行传输,或者需要将对象的

2020-12-11 13:39:46 4423

原创 IDEA去掉xml中的屎黄色和屎绿色背景

1、去掉xml的屎黄色背景2、去掉xml的屎绿色背景

2020-11-26 14:25:47 1106

原创 @RequestParam和@PathVariable两兄弟

@RequestParam和@PathVariable 相同点与区别:RequestParam:翻译为“请求参数”; PathVariable:翻译为请求“路径变量”。相同点:@RequestParam和@PathVariable都能够完成类似的功能——因为本质上,它们都是用户的输入,只不过输入的部分不同,一个在URL路径部分,另一个在参数部分。不同点:使用的方法不相同,一个需要传递参数,一个需要传递变量。例如://默认必须要传参数,参数的名称必须是id//通过@RequestPar

2020-11-09 20:03:14 4495

原创 孪生兄弟hashCode()和equals()

一、hashCode()和equals()是什么?hashCode()方法和equals()方法的作用其实一样,在Java里都是用来对比两个对象是否相等一致。二、equals方法与‘==’运算符有什么区别?equals比较的是对象的内容,而‘==’比较的是对象的地址。三、hashCode()和equals()的区别?下边从两个角度介绍了他们的区别:一个是性能,一个是可靠性。他们之间的主要区别也基本体现在这里。1、equals()既然已经能实现对比的功能了,为什么还要hashCode()呢?因为

2020-09-11 23:15:09 4419

原创 快速体验docker

一、docker的安装https://developer.aliyun.com/mirror/docker-ce1、安装必要的一些系统工具sudo yum install -y yum-utils device-mapper-persistent-data lvm22、添加软件源信息sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo3、更新并安装

2020-09-11 00:08:25 4533

原创 快速带你理解什么是跨域并解决跨域问题

1、什么是跨域?浏览器从一个域名的网页去请求另一个域名的资源时,域名、端口、协议任一不同,都是跨域2、为什么会有跨域?在前后端分离的模式下,前后端的域名是不一致的,此时就会发生跨域访问问题。在请求的过程中我们要想回去数据一般都是post/get请求,所以…跨域问题出现跨域问题来源于JavaScript的同源策略,即只有 协议+主机名+端口号(如存在)相同,则允许相互访问。也就是说JavaScript只能访问和操作自己域下的资源,不能访问和操作其他域下的资源。跨域问题是针对JS和ajax的,html本

2020-08-29 16:20:57 4538

原创 Linux命令的增删改查

1、目录切换命令cd usr: 切换到该目录下usr目录cd …(或cd…/): 切换到上一层目录cd /: 切换到系统根目录cd ~: 切换到用户主目录cd -: 切换到上一个操作所在目录2、 目录的操作命令(增删改查)mkdir 目录名称: 增加目录ls或者ll(ll是ls -l的别名,ll命令可以看到该目录下的所有目录和文件的详细信息):查看目录信息find 目录 参数: 寻找目录(查)mv 目录名称 新目录名称:修改目录的名称(改) 注意:mv的语法不

2020-08-16 22:53:05 9684 3

原创 使用frp内网穿透,实现windows远程桌面连接

1、实现思路Windows是自带远程桌面功能的,只是该功能只有专业版才有。Windows远程桌面端口是3389,控制端Win键 + R打开run界面输入mstsc可以呼出远程桌面连接,输入目标电脑IP即可连接。公司电脑通常部署在内网中,不能直接通过IP访问到,因此需要将内网的电脑3389端口映射到公网IP服务器上,内网电脑与云服务器建立连接,控制端通过访公网服务器转发流量到内网电脑中,简单地说就是内网穿透。2、下载frp 通过宝塔直接上传 其他就默认就可以,记得启动frps注意:阿里云上要开通338

2020-07-06 21:45:05 8426

原创 Xposed框架的简单使用

一、Xposed的简单介绍1.Xposed是什么?Xposed框架是一款特殊的安卓App,其主要功能是提供一个新的应用平台,玩家们安装Xposed框架后,就能够通过Xposed框架搭建起回的平台安装更多系统级的应用,实现诸多神奇的功能——从使用方面来说,和iOS越狱后的Cydia平台体验类似。2.Xposed框架能用来干什么?Xposed框架的原理是替换安卓系统/System/bin目录下...

2020-07-06 21:42:25 5496

空空如也

空空如也

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

TA关注的人

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