自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(165)
  • 收藏
  • 关注

原创 提高单元测试的运行速度

单元测试时,只加载我们需要的Bean和组件,避免扫描不必要的类,从而提高单元测试的速度和准确性

2023-04-20 11:11:06 778 1

原创 基于redis实现分布式锁(单节点)

2、锁需要添加过期时间,并且获取锁和设置过期时间要保证原子性,这里使用Lua脚本(Lua脚本在redis执行是原子性的)执行【问题2】解锁时检查value值是否和当前线程的value一致,一致才能解锁【问题3】问题2:锁要有过期时间(一个线程获取锁后宕机,导致其它线程都获取不到锁)1、redis的SETNX是key不存在时,才能set成功【问题1】问题1:获取锁的唯一性(多个线程不能同时获取一个锁)2、多节点的分布式锁可使用redlock等框架实现。问题3:释放锁时,只能释放自己(本线程)创建的锁。

2023-04-10 16:16:48 650

原创 springboot如何优雅的打印项目日志

HttpServletRequest 包装器,用于缓存从输入流和读取器读取的所有内容,并允许通过字节数组检索此内容。因为request的数据流只能读取一次,通过过滤器读取一次后,后面的业务处理会读不到数据。通过ContentCachingRequestWrapper将请求包装,可以进行多次读取。兼容多种servlet版本,保证在任何 servlet 容器上每个请求调度一次执行。使用filter拦截请求,打印出请求、响应,及耗时。源代码如下,第一次获取输入流时,复制了一份。

2023-04-10 10:08:28 1012

原创 金蝶AAS-9.0部署-禁用请求方法的坑-eureka注册失败

解决金蝶容器部署eureka注册不成功的问题

2022-08-25 16:43:15 663 3

原创 使用SFTP向liunx传输文件

SFTP连接服务sftp user@host上传文件put -r local_path remote_path下载文件get -r local_path remote_path退出exit

2022-05-31 15:24:39 173

原创 TraceId的正确使用姿势,提高日志排查效率

文章目录TraceID提高问题排查效率问题如何解决上代码Web接口在拦截器中注入traceIDRPC接口在RPC过滤器中注入traceIDprovider端consumer端在log4j2.xml中修改patternlog4j2依赖效果TraceID提高问题排查效率问题通常服务遇到问题,通过查询日志信息来定位bug,但是只能根据日志的关键信息来查询,查询信息不全,排查困难如何解决将traceID注入日志,查询的时候根据traceID查询出整个链路信息上代码Web接口在拦截器中注入traceI

2022-02-18 22:09:45 4753 5

原创 dump内存

1、查看java应用pidtop | grep java2、输出内存信息jmap -dump:live,format=b,file=out.hprof pid3、使用MAT等工具对内存进行分析

2021-11-17 11:37:44 944

原创 mysql数据行转列,列转行

行转列使用union,一行变多行select temp.uid, temp.columnfrom ( select uid, column1 as column from base_table union select uid, column2 as column from base_table) temp列转行select temp.uid, temp.column1 as column1, temp.colum

2021-11-17 11:27:01 913

原创 使用Python快速启动文件服务器

服务器需要安装python在需要访问的文件文件夹下执行如下命令Python 2: python -m SimpleHTTPServer 8080Python 3: python -m http.server 8080这里指定的端口是8080,在浏览器中使用http://你的服务器域名:8080即可访问。...

2021-11-17 11:21:30 2399

原创 查看实时gc日志

如何查看实时GC日志1、先使用top命令查看Java应用的pidtop | grep java2、输入如下命令查看gc情况(pid替换为之前查到的值,1000代表1秒打印一次, 100代表打印100次)jstat -gcutil pid 1000 100

2021-11-17 11:08:37 2012

原创 简单好用的批量执行工具-Java

解决问题批量执行任务时,总是需要关注许多的边界问题Example比如需要打印1-100的数字,每一批10个List<Integer> workList = new ArrayList<>();for (int i = 0; i < 100; i++) { workList.add(i + 1);}BatchUtil.process(10, workList, (list) -> { System.out.printl

2021-11-17 10:59:45 5825

原创 bug排查与解决

命令执行jar包将项目和依赖分开打包,依赖copy 到lib目录下<build> <finalName>name</finalName> <sourceDirectory>${project.basedir}/src/main/java</sourceDirectory> <plugins> <plugin> &lt

2020-12-04 11:20:08 133

原创 Redis

文章目录RedisRedis基本命令集合有序集合Redis事务错误处理WATCH 命令过期时间排序SORT 命令BY 参数GET 参数STORE参数性能消息发布订阅按照规则订阅管道节省存储空间查看键的内部编码方式String编码格式HASH编码格式列表类型编码格式集合类型编码格式有序集合编码格式脚本变量注释赋值操作符if语句循环语句表类型函数标准库String库Table库Math库其它库Redis与Lua脚本中调用redis命令脚本相关命令持久化RDB方式AOF方式集群复制配置原理从数据库持久化无硬盘复制

2020-09-16 16:36:13 232

原创 SpringBoot项目中前端页面通过URL访问本地文件夹(访问静态文件)

文章目录前端页面通过URL访问本地文件夹在application.yml中添加配置实现WebMvcConfigurer接口前端页面中进行访问前端页面通过URL访问本地文件夹因为SpringBoot项目中使用的嵌入Tomcat,所以前端页面不能像以前那样直接将从Tomcat很目录访问文件。解决办法:继承WebMvcConfigurer接口对访问URL进行拦截,然后将访问文件的URL映射至本地文件夹在application.yml中添加配置首先在本地创建文件夹accessFile: reso

2020-05-22 09:25:59 10943 1

原创 SpringBoot2.x整合mybatis和MySQL(IDEA)

文章目录SpringBoot2.x整合mybatisidea创建新项目,如下操作完整项目目录如下pom.xmlmysql数据库建表创建项目实体类创建UserDao接口创建mapper映射文件application.properties中配置mybatis启动类中配置@MapperScan测试SpringBoot2.x整合mybatisidea创建新项目,如下操作创建springboot项目...

2020-03-27 10:01:00 1097

原创 SpringBoot2.x-静态类获取application.properties中自定义配置信息

文章目录获取application.properties的配置首先创建一个实现ApplicationContextAware的类获取配置测试是否可以获取获取application.properties的配置首先创建一个实现ApplicationContextAware的类实现方法setApplicationContext()package rui.zhang.crawler.config;...

2020-03-08 17:55:38 1558

原创 超简单spring5源码编译(IDEA)

下载spring5.x国内直接在GitHub下载会很慢,所以这里我通过码云来下载1、首先在github搜索spring-framework选择版本并复制链接2、注册码云,创建新库,导入已有仓库,粘贴复制的链接,创建完成就可以在码云直接下载,速度贼快本地安装Gradle,这个网上有教程很简单Gradle下载链接我下载的是4.10.3版本开始编译1、解压spring5.x源码...

2020-02-16 11:54:01 743

原创 SpringBoot2.x访问静态资源问题-超简单解决方法

在application.properties中添加如下图配置spring.mvc.static-path-pattern=/**亲测,如下四个文件夹都可以访问到:官方文档如下:不知道为什呢官方文档的 /resources/** 反倒访问不到,有知道答案的可以留言...

2019-11-01 14:48:37 3573 5

原创 MySQL高级

文章目录MySQL高级下载与安装修改配置文件设置字符集mysql架构连接层服务层引擎层存储层存储引擎MyISAM和InnoDBMySQL高级下载与安装MySQL下载地址安装rpm -ivh MySQL-server-5.5.48-1.linux2.6.x86_64.rpmrpm -ivh MySQL-client-5.5.48-1.linux2.6.x86_64.rpm修改初始密...

2019-10-25 21:24:25 427

原创 MySQL-流程控制

文章目录流程控制结构顺序结构分支结构if函数case结构if结构循环结构流程控制结构顺序结构程序从上往下依次执行分支结构程序从两条或多条路径中选择一条去执行if函数实现简单的双分支IF(表达式1,表达式2,表达式3)如果表达式1成立,返回表达式2的值,否则返回表达式3的值应用:任何地方case结构类似Java中的switch语句,一般用于实现等值判断case 变量|表达...

2019-10-16 19:12:50 594

原创 MySQL-存储过程和函数

文章目录存储过程和函数存储过程创建语法参数列表调用语法实例删除存储过程查看存储过程的信息函数创建语法调用语法存储过程和函数类似于Java中的方法提高代码的重用性简化操作存储过程含义:一组预先编译好的sql语句的集合提高代码的重用性简化操作减少了编译次数和数据库服务器的连接次数创建语法CREATE PROCEDURE 存储过程名(参数列表)BEGIN 存储过程体(一...

2019-10-14 20:33:02 185

原创 MySQL-变量

文章目录变量系统变量语法全局变量回话变量自定义变量用户变量声明并初始化赋值查看局部变量声明两个变量并赋初始值,求和变量变量由系统提供的,不是用户自定义,属于服务器层面系统变量如果是全局变量,则需要加GLOBAL,如果是回话级别,则需要交SESSION,默认是SESSION语法查看所有的系统变量show global |session variables;查看满足条件的部分系统变量...

2019-10-13 18:32:31 92

原创 MySQL-视图

文章目录视图使用场景案例创建视图视图虚拟表,和普通表一样使用MySQL5.1版本出现的新特性,是通过表动态生成的数据使用场景多个地方用到同样的查询结果该查询结果使用的sql语句较复杂案例查询姓张的学生名和专业名select stuname,majornamefrom stuinfo sinner join major m on s.majorid=m.idwhere s...

2019-10-13 15:38:01 141

原创 MySQL-TCL(事务控制)

文章目录TCL(事务控制)事务的ACID属性原子性一致性隔离性持久性事物的创建隐式事务显式事务savepoint的使用隔离级别查看当前的隔离级别设置当前MySQL连接的隔离级别设置数据库系统的全局隔离级别TCL(事务控制)Transaction Control Language 事务控制语言一个或一组sql语句组成一个执行单元,这个执行单元要么执行成功,要么全部失败事务的ACID属性原子...

2019-10-12 17:23:59 150

原创 MySQL-约束

文章目录约束六大约束添加约束的时机创建表时添加列级约束添加表级约束通用写法修改表时添加非空约束添加默认约束添加主键添加唯一添加外键删除非空约束删除默认约束删除主键删除唯一删除外键约束约束的添加分类主键和唯一约束对比外键标识列(自增键)创建表时设置标识列修改表时设置标识列修改表时删除标识列约束一种限制,用于限制表中的数据,为了保证表中的数据的精准和可靠性六大约束类型作用N...

2019-10-11 18:35:49 138

原创 MySQL-子查询

文章目录子查询分类where或having后面标量子查询列子查询行子查询select后面from后面exists后面子查询出现在其他语句中的select语句,称为子查询或内查询分类按结果集的行列数不同:关键词含义标量子查询一行一列列子查询一列多行行子查询一行多列表子查询多行多列按子查询的位置:select后面:仅仅支持标量子查询f...

2019-10-10 21:48:06 150

原创 MySQL-DDL(数据定义语言)

文章目录DDL数据定义语言库的管理创建修改删除表的管理表的创建表的修改修改列名修改列的类型或约束添加新列删除列修改表名表的删除表的复制DDL数据定义语言库的管理创建create database 【if not exists】库名;修改现在已经不用rename database 库名 to 新库名;更改库的字符集alter datebase 库名 character set ...

2019-10-10 21:47:38 433

原创 MySQL-数据类型

文章目录数据类型数值型整形特点如何设置无符号小数定点数浮点数字符型较短文本char和varchar的区别较长文本日期型查看和更改时区数据类型数值型整形整数类型字节范围tinyint1有符号:-128 ~ 127 无符号:0 ~ 255smallint2-32768 ~ 32767 0 ~ 65535mediumint3-8388608 ~ ...

2019-10-10 21:46:41 143

原创 MySQL-DML(数据操作语言)

DML语言(数据操作语言)插入语法方式一:insert into 表名(列名,...) values(值1,...));方式二:insert into 表名set 列名=值,列名=值,...**方式一支持多行插入,支持子查询 **insert into beauty(id,name,phone)select 1,'zhang','17730553665';修改语法修...

2019-10-10 15:06:01 124

原创 MySQL-联合查询

文章目录联合查询语法应用场景特点案例联合查询union 联合 合并:将多条查询语句的结果合并成一个结果语法语句1union语句2。。。应用场景要查询的结果来自多个表,且多个表没有直接的连接关系,但查询的信息一致特点要求多条查询语句的查询列数是一致的每一列的类型和顺序最好一致union关键字默认去重,union all 不去重显示所有案例查询中国用户中男性的信息以及...

2019-10-09 18:53:43 200

原创 MySQL-分页查询

文章目录分页查询语法特点分页查询应用场景:当要显示的数据,一页显示不全,需要分页提交sql请求语法select 查询列表from 表【join type join 表2on 连接条件where 筛选条件group by 分组字段having 分组后的筛选order by 排序的字段】limit offset,size;offset要显示条目的起始索引(起始索引从0开始)...

2019-10-09 18:31:32 109

原创 MySQL-连接查询

连接查询又称多表查询,当查询的字段来自于多个表时,会用到连接查询笛卡尔乘积原因:没有有效的连接条件避免:添加有效的连接条件分类按年代分类sql92标准:仅仅支持内连接sql99标准:支持内连接+外连接(左外和右外)+交叉连接按功能分类1、内连接等值连接非等值连接自连接2、外连接左外连接右外连接全外连接3、交叉连接内连接...

2019-10-08 20:45:21 181

原创 MySQL-分组查询

分组查询语法select 分组函数,列(要求出现在group by的后面)from 表【where 筛选条件】group by 分组的列表【order by 子句】查询列表必须是分组函数和group by后出现的字段案例简单分组查询1、查询每个工种的最高工资select max(salary),jod_idfrom employeesgroup by job_id;...

2019-10-07 19:15:44 366

原创 一堆香蕉,分成五份剩一个,第一个人吃掉剩下那个,拿走一份。。。5个人最少需要多少个香蕉

话不多说看代码package 算法.分5份剩一个;public class Main { private static int m=0;//总香蕉数 public static void main(String[] args) { int m=part(1,1); System.out.println(m); } public ...

2019-09-16 00:19:26 5468

原创 面试问题总结

文章目录1、 TCP与UDP的区别,如何实现UDP安全传输2、. 场景题:有一个秒杀活动,有五个爆款商品,现在有一百万人访问想要秒杀,说说这个活动中的技术难点3、 Hashmap的底层实现原理?4、 HTTP与HTTPS的区别,分别介绍5、 HTTPS是如何实现的6、C++与JAVA的区别8、 JAVA中的继承与C++中的继承有什么不同?9、接口和抽象类的异同1、 TCP与UDP的区别,如何实现...

2019-09-15 15:38:47 127

原创 分发糖果-困难

题目描述老师想给孩子们分发糖果,有 N 个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分。你需要按照以下要求,帮助老师给这些孩子分发糖果:每个孩子至少分配到 1 个糖果。相邻的孩子中,评分高的孩子必须获得更多的糖果。那么这样下来,老师至少需要准备多少颗糖果呢?示例 1:输入: [1,0,2]输出: 5解释: 你可以分别给这三个孩子分发 2、1、2 颗糖果。示例 2...

2019-09-14 22:38:41 212

原创 划分为k个相等的子集

问题描述给定一个整数数组 nums 和一个正整数 k,找出是否有可能把这个数组分成 k 个非空子集,其总和都相等。示例 1:输入: nums = [4, 3, 2, 3, 5, 2, 1], k = 4输出: True说明: 有可能将其分成 4 个子集(5),(1,4),(2,3),(2,3)等于总和。 注意:1 <= k <= len(nums) <= 1...

2019-08-21 12:26:52 1051

原创 二叉树的序列化与反序列化-困难

问题描述序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得到原数据。请设计一个算法来实现二叉树的序列化与反序列化。这里不限定你的序列 / 反序列化算法执行逻辑,你只需要保证一个二叉树可以被序列化为一个字符串并且将这个字符串反序列化为原始的树结构。示例:你可以将以下二叉树: ...

2019-08-20 17:05:15 143

原创 二叉树的最近公共祖先

问题描述给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉树: root = [3,5,1,6,2,0,8,null,null,7,4]示例 1:输入: root = [3,...

2019-08-20 15:10:11 97

原创 四数相加-二

问题描述给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0。为了使问题简单化,所有的 A, B, C, D 具有相同的长度 N,且 0 ≤ N ≤ 500 。所有整数的范围在 -228 到 228 - 1 之间,最终结果不会超过 231 - 1 。例如:输入:A = [ ...

2019-08-20 09:24:22 175

空空如也

空空如也

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

TA关注的人

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