
工具
文章平均质量分 64
LitongZero
哪怕命运即为必然,也要拼命相抗
展开
-
SpringBoot获取命令行参数
SpringBoot获取命令行参数在SpringBoot中获取命令行参数,如 -D参数。1.启动命令java -Dspring.profiles.active=dev -Duser.name=ltz2.获取方式@Value("${user.name}")private String userName;3.注意命令行参数优先级大于Application.yml优先级。...原创 2021-10-22 18:26:22 · 2080 阅读 · 0 评论 -
使用ThreadLocal在线程间传递参数
使用ThreadLocal在线程间传递参数使用场景用户参数透传,如租户ID,tid,userID,Token等。这些参数与具体业务无关,但是又是必须的(如:租户ID,在数据落库时需要传入,但是在其他业务代码中基本用不到)如果作为方法的参数一层一层向下传递,必然造成代码的冗余和扩展性查等影响。整片文章就以租户ID为例子说明吧。1.使用ThreadLocal结合AOP大致思路:在请求接口时,租户ID往往可以从Token或用户信息中取出,这时,在请求拦截器中,将用户TenantID取出,放入线程中。原创 2021-09-29 10:15:17 · 2054 阅读 · 1 评论 -
helm安装Sentry
文中的--kubeconfig ~/.kube/sentry,是指k8s的配置,添加配置后,可以访问指定k8s,如不需要,自行去除。1.安装helm2.设置镜像helm repo add stable http://mirror.azure.cn/kubernetes/chartshelm repo add incubator http://mirror.azure.cn/kubernetes/charts-incubatorhelm repo update3.检测镜像helm sear.原创 2021-05-18 10:22:37 · 1880 阅读 · 8 评论 -
前端开发代理配置
代理配置Whistle作为一个开发调试工具,可以帮助开发人员解决很多问题,诸如:跨域、环境配置不同等等。代理的原理Whistle详细配置,可以参考安装Whistle基于Node.js。需要先安装Node.js(版本需要大于10.0)npm install -g whistle启动命令启动 whistle start重启 w2 restart(可以直接用这个启动)访问http://127.0.0.1:8899/Rule配置Rule,这是比较重要的一步,目的就是为了把,原创 2021-03-30 17:56:20 · 1146 阅读 · 0 评论 -
基于已有项目,快速创建项目模板
基于已有项目,快速创建项目模板mvn Archetype的妙用背景在开发过程中,尤其是使用Maven作为包管理工具时,在创建新模块时,总会有些头疼。常见场景从网上下载下来的开源项目(或者公司的大型项目),需要新建一个模块或系统,而这个开源项目,可能层次非常多。这时手动创建就很有可能产生错误。而Maven依赖等错误,有时候会非常隐蔽,不容易发现。一.选定原始模型这里以一个demo为例。此demo层层嵌套(阿里Cola4.0的demo)。如果创建一个新的领域模块,要创建6个模块,这是非常危险的原创 2021-02-26 18:11:01 · 788 阅读 · 1 评论 -
C4 model技术架构图--context图
C4 model技术架构图–context图在设计系统架构图时,包括常见的技术架构图和业务架构图。技术架构图架构图不止在前期设计系统时重要,在后期开发或者维护的时作为指导也同样重要。一.关于C4 model官方网址属于技术架构图的一种格式,C4 分别表示上下文(Context)、容器(Container)、组件(Component)和代码(Code)。四个层次,分别对应不同的角度。C4 model 架构图的系统拆分,其实与微服务拆分和DDD领域拆分的思想非常像。拆分的合理,才能保证系统的开发原创 2021-02-09 15:00:44 · 3409 阅读 · 1 评论 -
blob临时路径 转File对象
blob临时路径 转File对象最近在使用Taro-UI时,发现一个问题。问题表象在上传图片时,Taro-UI只提供了一个图片选择器,可以返回这个图片的临时路径,类似如下:{ "url":"blob:http://10.1.10.122:10086/4ebc5d64-bd9a-4994-8212-addf476ba2c2", "file": { "path":"blob:http://10.1.10.122:10086/4ebc5d64-bd9a-4994-8212-a原创 2020-12-23 10:48:23 · 6811 阅读 · 3 评论 -
Go 单元测试
Go 单元测试单元测试是开发中非常重要的环节之一。在开发完成后、迭代改动后、代码改动后、添加功能后…快速的帮助开发人员完成代码的测试。一.目标不区分语言,一个函数、一个方法、一句SQL、一段业务代码,都可以成为单元测试的目标。单元测试是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。我们知道,在开发时越早发现BUG,就能节省更多的时间,降低更多的风险。二.目的单元测试一般由输入数据和预期输出组成。输入数据:Request,输入的请求参数。预期输出:Resp原创 2020-11-27 18:04:08 · 733 阅读 · 1 评论 -
gRPC+ProtoBuf
gRPC+ProtoBuf-微服务传输协议微服务中,常见的传输协议有HTTP+Json、gRPC+ProtoBuf。同HTTP+Json一样,gRPC+ProtoBuf同样适用于跨语言传输。前提是,使用相同的协议原文件(.proto)生成各自的协议文件(.pb.go\.pb.cc\.java)协议格式user.proto// proto 协议版本syntax = "proto3";package user;// 包路径option go_package = "common/proto原创 2020-10-31 15:04:06 · 901 阅读 · 1 评论 -
SpringBoot MDC
SpringBoot MDC在程序中,日志一直是一个至关重要的部分,排查问题、统计数据…解决问题SpringBoot添加全局自定义日志链路信息。1.过滤器,拦截指定请求,可取出参数、请求头等信息,可根据业务自定义添加进日志进程(MDC)。2.时间拦截器,根据注解进行拦截,向进程日志(MDC)中,注入方法执行时间。3.具体业务,可自行向进程日志(MDC)中注入所需信息。1.MDCFilter请求过滤器,用于向MDC中添加请求头等信息。/** * 拦截请求信息,添加到日志 * *原创 2020-07-27 13:42:32 · 1315 阅读 · 0 评论 -
Java代码,给图片添加水印
依赖Hutool工具库,POM引入即可。官网<dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.3.4</version></dependency>加水印代码ImgUtil.pressText(// FileUtil.fi原创 2020-06-01 18:09:02 · 1583 阅读 · 0 评论 -
跨域测试代码
跨域测试跨域是前后端经常会碰到的问题,那么如何快速的定位这个问题呢?可以使用如下代码,进行测试,分别对目标地址,进行普通访问和跨域访问(前端处理跨域)。还可以显示出,响应时间。测试页面代码<html xmlns="http://www.w3.org/1999/xhtml"><head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name=原创 2020-05-18 17:30:21 · 1374 阅读 · 0 评论 -
Git 开发规范
Git开发规范日常开发中,我们经常会跟Git打交道,可能服务器不一样,但是命令和规范基本都是一样的。一.常驻分支常驻分支为一个正常开发上线流程应该会有的分支。1.master/prod/production主分支,又称为生产环境分支,有时可能会使用(prod/production)来代替,生产环境的部署分支,生产环境相关操作,如:打包等应从改分支进行。2.dev全称(Develop),开发分支,我们正常的需求开发等,应该使用该分支。开发环境的部署和打包,使用该分支。3.pre全称(Pr原创 2020-05-18 12:44:46 · 1732 阅读 · 1 评论 -
加密解密篇
前后端加密解密。前端AES加密,前端RSA加密。后端AES加密,后端RSA加密。非对称加密,对称加密,摘要加密。原创 2020-05-12 11:12:14 · 802 阅读 · 2 评论 -
使用Lambda统计List嵌套数据
使用Lambda统计List嵌套数据场景之前碰到过这样一种场景,有如下数据(JSON或List对象){ "dataList": [{ "userInfoList": [{ "id": 1, "idNumber": "1" }, { "id": 2, "idNumber": "2" }] }, { "userInfoList": [{ "i...原创 2020-05-06 13:54:41 · 2867 阅读 · 0 评论 -
SpringBoot限流拦截器(结合业务)
SpringBoot限流拦截器(结合业务)背景从网络安全和系统稳定性来看,限流是非常有必要的。一些网关,可以帮我们完成限流熔断。但是,在某些场景,当与实际业务相结合时,网关的限流也就不那么方便了。1.目的1.解决业务和限流合并的情况。如,同一个接口,每个用户,在一段时间(10秒)内只能请求几次(4次)。2.并且可以快速的调整这个限制的频率(动态修改)SpringBootRe...原创 2020-04-05 20:22:23 · 816 阅读 · 0 评论 -
Could not initialize class sun.awt.Win32FontManager
一.问题表现RuoYi框架,验证码加载不出来二.问题分析1.控制台报错2.查看问题由Could not initialize class sun.awt.Win32FontManager,可以看出,应该是JDK缺少字体导致。三.解决问题打开JDK,font目录C:\work\java\jdk1.8.0_131\jre\lib\fonts,添加字体。 重启项目,解决问题。四.字...原创 2020-03-15 14:51:32 · 1938 阅读 · 0 评论 -
BigDecimal类型转化为万或亿为结尾
BigDecimal类型 自动转化单位(万\亿)工具类import java.math.BigDecimal;/** * @author litong */public class NumberUtil { private static final String UNIT_STRING_WAN = "万"; private static final String UNIT...原创 2020-02-06 23:53:21 · 4297 阅读 · 2 评论 -
Swagger-UI 自定义显示返回状态码
Swagger-UI 自定义显示返回状态码注: Swagger-bootstrap-ui 方法同样Swagger,作为一个在线文档,是非常好用的,正确的使用这个,可以使我们少些很多接口文档。1.问题背景:做为接口文档,那必然是要有,全局错误状态码说明的功能。而Swagger在参数,相应,都用相应的注解,同样,在状态码也是有相应的注解的。默认的状态码,只有200,如下:2.单接口...原创 2020-01-03 16:45:43 · 11697 阅读 · 7 评论 -
SpringBoot 部署在Tomcat上,上传文件问题
SpringBoot 部署在Tomcat上,上传文件问题解决方法@Beanpublic CommonsMultipartResolver commonsMultipartResolver(){ CommonsMultipartResolver commonsMultipartResolver = new CommonsMultipartResolver(); commonsMul...原创 2019-10-27 14:35:11 · 895 阅读 · 0 评论 -
Java后端生成二维码,Base64后,前端直接使用
后端生成二维码,Base64后,前端直接使用开放中,可能会遇到生成二维码的时候,这个时候,可以前端生成,也可以后端生成。这时候,就可以看,把压力放在哪比较好。当二维码信息比较小,或者前端迭代比较困难的时候(APP发布),就可以选择后端生成二维码。二维码这种图片,一般比较小,可直接生成,要是再放到文件服务器,未免有些多余,不如直接返回给前端。但是,如果返回文件流的话,前后端都不太好操作...原创 2019-10-19 14:50:38 · 6613 阅读 · 5 评论 -
IDEA-restClient,自带的Http测试工具
IDEA-restClient,自带的Http测试工具作为一个程序员,不管是前端、后端、还是测试,都要经常面对接口。后端开发接口,前端对接接口,测试测试接口。目前,我们最常用的接口测试工具,基本是Postman。然而,我这篇文章,不是说Postman的,而是restClient 。最为一个JetBrains公司爱好者,在使用IDEA时,尽量想减少对其他软件的依赖。比如IDEA很多自带...原创 2019-09-13 11:37:40 · 14069 阅读 · 6 评论 -
IDEA 使用补丁 patch
在开发中,我们可能会遇到一个问题,比如:我们在写一个项目的时候,会根据不同的需求,进行不同方向的开发。但是,当客户变为两家甚至更多的时候,我们往往要根据客户的需求,做一些定制化功能,这个时候就需要拉一个分支出来。久而久之,我们就会拉很多分支(我现在写的项目,6个分支),这时,在一个老的Bug,或者新的改进来的时候,我们不得不,在“改Bug-->切分支-->改Bug。。。循环”。这就...原创 2018-10-11 14:52:09 · 9801 阅读 · 2 评论 -
省去Set、Get方法
在IDEA中,可以通过安装 lombok-plugin-0.19-2018.1 插件,来省去经常要写的Set、Get方法。离线安装插件下载地址http://plugins.jetbrains.com/plugin/6317-lombok-plugin 安装方法:可以参考(离线安装、在线安装)https://blog.youkuaiyun.com/LitongZero/article/...原创 2018-09-20 10:50:59 · 568 阅读 · 0 评论 -
前端开发,部署页面到服务器,并实现页面“热部署”
前端开发,部署页面到服务器,并实现页面“热部署” 浏览器同步测试工具 browser-sync原创 2018-09-02 15:37:26 · 4634 阅读 · 0 评论 -
IDEA安装插件
今天在安装IDEA插件(FindBugs)时,闹了个笑话。。。在安装插件时,常用的有两种安装方式:1、直接在设置中点击之后搜索,插件名称,然后直接“install”但是,这种方法有一定的局限性,比如,网速不好,又不想翻墙。2、离线安装(从本地安装)点击然后,在目录中选择下载下来的.zip压缩包切记:不要解压。我就是因为自己解压了,结果安装了半天,...原创 2018-08-10 17:16:49 · 843 阅读 · 0 评论 -
文件移动(提取子文件夹)小程序
功能描述: 输入路径:目标路径。 功能(结果):对其子文件夹中的文件进行提取(全部移动到目标路径下) 提示:每移动一个文件,在控制台先输出文件路径,如果移动成功,控制台打印true,不成功打印false。 代码背景:本人在大学任班长一职,在收作业和资料的时候,总要移动一些文件,然而这些文件又都是固定格式,固定套路,而且数量略多(本班69人)。所以想尝试用代码完成(可能...原创 2018-07-29 09:57:56 · 1710 阅读 · 0 评论 -
idea出现错,无法加载到主类
在网上看了很多,但是,没有一个解决方法适合我,最后发现是因为Maven打包的时候出错了。之后用主项目的Maven打包(先Clean、再Install)就可以了。好像主项目后面会有一个 (root) 标记。PS:我这个项目是包含几个“project”。...原创 2018-07-19 12:28:22 · 1229 阅读 · 0 评论 -
Git账号切换
解决方法:删除之前用户的Git的账号参考链接:https://blog.youkuaiyun.com/A199581/article/details/75104991转载 2018-07-18 09:32:31 · 958 阅读 · 0 评论 -
git本地仓库问题(Commit提交错误)
不小心在IDEA中,commit了不应该commit的文件,结果push的时候要全部提交,所有,不能push,可是又不想重新写代码。解决方法:1、在Idea Terminal 输入git log --stat2、得到Merge值:如图所示3、在IDEA中“右键”项目 4、选择Reset HEAD 5、输入刚刚的数值 ...原创 2018-07-18 09:29:08 · 3160 阅读 · 0 评论 -
Alibaba 代码规约插件使用 IDEA
1、安装离线安装插件下载地址http://plugins.jetbrains.com/plugin/10046-alibaba-java-coding-guidelines 安装方法:可以参考(离线安装、在线安装)https://blog.youkuaiyun.com/LitongZero/article/details/81566750 2、使用找到需要扫描的包,或文件(可扫...原创 2018-09-28 17:20:56 · 815 阅读 · 0 评论 -
使用navicat 连接 mysql 8.0.11 报 "2059 - authentication plugin 'caching_sha2_password'
使用 Navicat12连接 MySQL8.0,报错;使用navicat 连接 mysql 8.0.11 报 "2059 - authentication plugin 'caching_sha2_password' 解决方法:alter user 'root'@'localhost' identified with mysql_native_password by '131...原创 2018-09-30 09:24:44 · 603 阅读 · 0 评论 -
SpringBoot 添加单元测试
SpringBoot 添加单元测试1、添加Maven依赖&amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;org.springframework&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;spring-test&原创 2018-11-16 09:25:10 · 3963 阅读 · 0 评论 -
一个FastDFS整合Java的坑
一个FastDFS整合Java的坑背景本篇博客的主要目的,就是记录一个有关FastDFS整合Spring(Java)时的坑事发环境1、FastDFS 5.08安装成功,服务器端测试没问题测试命令 fdfs_test /etc/fdfs/client.conf upload /usr/local/tools/a.jpg 结果2、FastDFS整合Nginx完毕Ngin...原创 2019-03-20 19:00:42 · 1028 阅读 · 6 评论 -
使用Gitee Pages服务 搭建Vue项目
使用Gitee Pages服务 搭建Vue项目1.背景1.Gitee(GitHub) Pages 服务作为一个页面容器,可以说是非常方便了。我们可以在上面免费部署前端项目。2.并且同时获得一个附带.gitee.io(github.io)的网址。3.其他优点就不再赘述,可自行百度。2.Gitee Pages的介绍具体可以看这个网址Gitee Pages官方介绍3.上传自己的项目到G...原创 2019-03-05 22:03:59 · 8783 阅读 · 14 评论 -
Win10 C盘 系统和保留 占用空间 非常大
Win10 C盘 系统和保留 占用空间 非常大今天在写代码的时候,突然发现Redis起不来了,一看原因,是因为C盘空间不足。然后,我看了下C盘,发现。。。一个叫系统和保留的东西,居然占了110G的空间。难怪Redis起不来。然后,在网上找了各种方法,但是,网上大部分都是说,这个系统和保留是以前的老系统啊,或者系统升级文件残留,可是,我找了半天也没看到。用360扫描硬盘,也不能发现大文件究...原创 2019-01-10 09:12:34 · 66026 阅读 · 14 评论 -
Java 获取 副本文件名称
Java 获取 副本文件名称使用场景1.创建一个文件的副本,取文件名的问题。2.创建一个对象副本,但是名称不能重复,要加上某种特定字符(如:-副本1)编写工具类/*** 获取 副本文件名称* @param name 原文件名称* @return 新文件名称*/public static String getCopyNewName(String name) {// 自定义名...原创 2019-03-05 16:08:52 · 790 阅读 · 0 评论 -
后端参数校验工具类
后端参数校验工具类1、应用场景1、Controller层判断传入参数是否符合规则,不符合规则直接返回错误状态码。2、其他需要校验参数的地方。2、工具类public class CheckUtil { /** * 中文,字母,数字 _ - . 30位 */ static String regexFNDT = "^[a-zA-Z0-9\\u4e00-\\u9...原创 2019-01-11 17:10:37 · 1599 阅读 · 0 评论 -
IDEA 安装插件后打不开
IDEA 安装插件后打不开今天在安装一个IDEA插件(一个美化界面的)的时候,由于IDEA版本低,最新版无法安装,只能找一个低版本的。结果,安装成功后,重启IDEA。发现,IDEA打不开了,而且一直爆闪。从网上找了很多方法,卸载插件都是在IDEA中选择File-&gt;Settings…,然后现在我都打不开IDEA。最后发现,在用户目录中例如 C:\Users\Administrato...原创 2018-12-25 15:08:28 · 8983 阅读 · 2 评论 -
Redis 设置密码并开启自启 Windows
Redis 设置密码并开启自启 Windows1、打开Redis的安装目录,或者解压目录。找到图中两个文件,打开。2、搜索# requirepass foobared快速定位。(两个文件同样改法)如图,将密码改成自己想改的密码。记得中间要有空格3、将Redis加入Windows服务在redis的目录下执行如下命令(执行后就作为windows服务了)redis-server --se...原创 2018-12-07 15:50:49 · 538 阅读 · 0 评论