自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

LitongZero的博客

哪怕命运即为必然,也要拼命相抗

  • 博客(127)
  • 资源 (11)
  • 收藏
  • 关注

原创 Kettle的MySQL数据源版本问题

Kettle的MySQL数据源版本问题背景:使用Kettle创建MySQL链接时,JDBC包版本兼容问题,只能用5.1的mysql.jar包。高版本用不了。然而,现在普遍都是8.0的MySQL版本。原因1.官方支持问题,如图可以看到官方支持的是MySQL-JDBC-5.1.jar。经过测试,5.1的jar包,确实可以直接用,但是链接高版本的MySQL时会出问题。2.MySQL曾经换过包名版本driver-class5.1.47以前org.git.mm.mysql.Dr

2022-02-18 09:41:11 766

原创 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 1744

原创 使用ThreadLocal在线程间传递参数

使用ThreadLocal在线程间传递参数使用场景用户参数透传,如租户ID,tid,userID,Token等。这些参数与具体业务无关,但是又是必须的(如:租户ID,在数据落库时需要传入,但是在其他业务代码中基本用不到)如果作为方法的参数一层一层向下传递,必然造成代码的冗余和扩展性查等影响。整片文章就以租户ID为例子说明吧。1.使用ThreadLocal结合AOP大致思路:在请求接口时,租户ID往往可以从Token或用户信息中取出,这时,在请求拦截器中,将用户TenantID取出,放入线程中。

2021-09-29 10:15:17 1656 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 1456 8

原创 React项目偶现白屏

背景:1.使用Nginx做代理,把浏览器请求转发到COS上。2.React使用browserHistory路由(cdn.com/user/list)方式。3.刷新页面,偶现白屏1.React Router在React项目中,一般有两种路由方式。browserHistoryhashHistoryps: hashHistory 使用如 https://cdn.com/#/users/123 这样的 URL,取井号后面的字符作为路径。browserHistory 则直接使用 https:.

2021-05-13 18:43:12 728

原创 前端开发代理配置

代理配置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 905

原创 Spring Security 自定义接口登出

Spring Security 自定义接口登出使用Security提供的工具,在接口内登出用户。工具类代码 // 注入 tokenStore @Autowired private final TokenStore tokenStore; //在具体的业务代码中使用 /** * 删除 请求令牌 和 刷新令牌 * @param token 请求令牌 * @return */ public Boolean removeToken(String token) { OAu

2021-03-18 12:48:35 871 1

原创 基于已有项目,快速创建项目模板

基于已有项目,快速创建项目模板mvn Archetype的妙用背景在开发过程中,尤其是使用Maven作为包管理工具时,在创建新模块时,总会有些头疼。常见场景从网上下载下来的开源项目(或者公司的大型项目),需要新建一个模块或系统,而这个开源项目,可能层次非常多。这时手动创建就很有可能产生错误。而Maven依赖等错误,有时候会非常隐蔽,不容易发现。一.选定原始模型这里以一个demo为例。此demo层层嵌套(阿里Cola4.0的demo)。如果创建一个新的领域模块,要创建6个模块,这是非常危险的

2021-02-26 18:11:01 587 1

原创 C4 model技术架构图--context图

C4 model技术架构图–context图在设计系统架构图时,包括常见的技术架构图和业务架构图。技术架构图架构图不止在前期设计系统时重要,在后期开发或者维护的时作为指导也同样重要。一.关于C4 model官方网址属于技术架构图的一种格式,C4 分别表示上下文(Context)、容器(Container)、组件(Component)和代码(Code)。四个层次,分别对应不同的角度。C4 model 架构图的系统拆分,其实与微服务拆分和DDD领域拆分的思想非常像。拆分的合理,才能保证系统的开发

2021-02-09 15:00:44 2835 1

原创 HBase入门

HBase安装单机环境Centos7Hbase安装JDKyum install java-1.8.0-openjdk* -y下载HBASEhttp://mirror.bit.edu.cn/apache/hbase/2.2.6/解压到Linuxtar -xf hbase-1.2.8-bin.tar.gzcd hbase-2.2.6修改JAVA_HOME配置文件vim conf/hbase-env.sh// 注意这个是在CentOS上的java位置export JAVA_H

2020-12-29 15:34:42 341 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 5854 3

原创 Go 并发执行

Go 并发执行需要并发执行的场景有很多:爬虫、拉取数据、更新数据…Go作为天生高并发的语言,在使用并发时是比较方便的。Demo案例package mainimport ( "fmt")func main() { ConcurrentWork(5, func() { // ...业务逻辑 fmt.Println("123123123123") })}/** * @Description: 开启多线程执行 * @param total 启动线程数 * @param

2020-12-22 17:01:34 743 6

原创 Go 错误码初始化

Go 错误码初始化错误码是程序中,经常需要用到的,一般在Map中定义…key为code,value为msg1.Map初始化由于这个Map只需要初始化一次,所以,可以使用Go基础包中的sync.Once。来保证,Init只运行一次,极大的减少了程序的运行开销。2.代码此处以单元测试的形式体现。Go语言的单元测试,可以看我的另一篇博文。import ( "fmt" "sync" "testing")var once sync.Oncevar mapErrMsg map[int

2020-12-11 11:28:50 762

原创 Go 单元测试

Go 单元测试单元测试是开发中非常重要的环节之一。在开发完成后、迭代改动后、代码改动后、添加功能后…快速的帮助开发人员完成代码的测试。一.目标不区分语言,一个函数、一个方法、一句SQL、一段业务代码,都可以成为单元测试的目标。单元测试是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。我们知道,在开发时越早发现BUG,就能节省更多的时间,降低更多的风险。二.目的单元测试一般由输入数据和预期输出组成。输入数据:Request,输入的请求参数。预期输出:Resp

2020-11-27 18:04:08 504 1

原创 Go-micro异常捕获

Go-micro异常捕获在go-micro服务层,添加异常捕获机制,并发送报警。本文提供的只是一种捕获异常的思路:通过添加Handler实现。1.注入拦截器初始化时,添加异常捕获Handler。部分代码...//初始化服务config.Service = grpc.NewService( micro.Name("MyService"), micro.Address(...), // 添加异常拦截 micro.WrapHandler(utils.WxErrorHandler()),

2020-11-25 13:52:51 507

原创 Gorm 只更新某一字段

Gorm 只更新某一字段背景在开发中,可能会遇到,需要更新这一条数据的某一字段,但是并不想修改其的UpdatedAt字段。如:数据浏览量。正常更新...err = d.db.Model(&repository.UserInfo{}).Where("id = ?", id).Update(repository.UserInfo{ ViewsCount: viewsCount+1, }).Error...只更新某一字段(UpdatedAt字段不会更新)...err =

2020-11-16 17:08:13 7250 2

原创 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 815 1

原创 Gin增删改查demo

Gin增删改查demo一个Gin框架的联手demo、包括增删改查等等。1.使用技术GinGormMysql…2.项目结构目录│ postman_collection.json // postman配置文件│ db.sql // 数据库表结构│ config.yaml // 配置文件│ go.mod // 包依赖配置│ main.go // 程序入口├─api│ └─v1 // api 方法│ sys_user.

2020-10-25 16:16:27 1969 5

原创 assignment mismatch: 2 variables but uuid.NewV4 returns 1 values

assignment mismatch: 2 variables but uuid.NewV4 returns 1 values在使用github.com/satori/go.uuid包生成uuid时,突然发现一个很奇怪的问题。如下图示。编译器和启动时,报错冲突。启动时,报错。报错提示uuid.NewV4()函数,只有一个返回值。点进函数内部去发现确实是两个参数。只接受一个参数发现只接受一个参数,可以启动,但是编译器又报错。最终解决。在该项目的github->issues

2020-10-22 10:37:55 3360

原创 SpringBoot undertow accesslog格式

关于SpringBoot undertow中accesslog的格式1.背景1.收集accesslog日志。2.项目使用SpringBoot的undertow。3.日志格式有特殊要求。2.问题原因关于寻找日志格式的路上,花费了不少时间,其中,在各种博客上、SpringBoot官网上和Apache Access Logging标准。都没有找到undertow配置的相关答案。大部分博客都是把官网的说明直接翻译了一下。而容器undertow和tomcat的配置是有一定的差别的。照搬Tomcat的日

2020-09-10 09:43:33 1341

原创 Go Http 使用案例

net/http包使用案例。GET、POST请求示例。get请求import ( "bytes" "encoding/json" "fmt" "io/ioutil" "net/http")func get(id string) { client := &http.Client{} // 创建请求 req, _ := http.NewRequest( "GET", "https://csdn.com?id="+id, nil) // 添加请求头 req..

2020-08-29 23:08:30 446 1

原创 Redis 实现单位时间内限制频率功能

Redis 实现单位时间内限制频率功能1.使用场景1.重要日志每小时触发次数。2.限制登录次数。3.分布式部署情况下的上述情况…2.代码示例中为限制1小时内15次。/** * 每个人每小时限制触发次数 */private final int LOCK_TIMES = 15;// 自定义KeyString key = "Ltz:" + sid;// 获取已触发次数String sendUser = redisTemplate.opsForValue().get(key);

2020-08-16 22:51:58 944

原创 SpringBoot MDC

SpringBoot MDC在程序中,日志一直是一个至关重要的部分,排查问题、统计数据…解决问题SpringBoot添加全局自定义日志链路信息。1.过滤器,拦截指定请求,可取出参数、请求头等信息,可根据业务自定义添加进日志进程(MDC)。2.时间拦截器,根据注解进行拦截,向进程日志(MDC)中,注入方法执行时间。3.具体业务,可自行向进程日志(MDC)中注入所需信息。1.MDCFilter请求过滤器,用于向MDC中添加请求头等信息。/** * 拦截请求信息,添加到日志 * *

2020-07-27 13:42:32 1196

原创 Feign透传请求头等

Feign透传请求头等在用Feign进行接口转发时,可能需要直接透传请求头。添加Feign配置@Configurationpublic class FeignServerAuthConfig { @Bean public RequestInterceptor requestInterceptor(){ return new FeignMyRequestInterceptor(); } @Autowired private ObjectFac

2020-07-20 17:36:34 1315 4

原创 前后端WebSocket使用注意事项

前后端WebSocket使用注意事项1.域名配置微信小程序硬性要求2.Https证书微信小程序硬性要求3.Nginx配置Nginx配置,跟普通接口不太一样。WebSocket需要一些特殊配置。如果是集群,记得配置会话保持或haspip4.后端后端我使用的是Netty-Socket-IO框架配合SpringBoot。后端代码可以看我的这批文章5.小程序端官网文档测试代码wx.connectSocket({// 小程序端,必须使用wss协议,也就是说服务器必须要配置https

2020-06-07 15:43:07 1217

原创 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 1388

原创 ClickHouse修改表字段

ClickHouse修改表字段。Code: 62, e.displayText() = DB::Exception: Syntax error: failed at position 34: '$user_id' String AFTER chart_position. Expected one of: IF NOT EXISTS, compound identifier, identifier, column declaration, list of elements (version 20.4.2.9

2020-05-26 10:32:00 21743

原创 跨域测试代码

跨域测试跨域是前后端经常会碰到的问题,那么如何快速的定位这个问题呢?可以使用如下代码,进行测试,分别对目标地址,进行普通访问和跨域访问(前端处理跨域)。还可以显示出,响应时间。测试页面代码<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 1277

原创 Git 开发规范

Git开发规范日常开发中,我们经常会跟Git打交道,可能服务器不一样,但是命令和规范基本都是一样的。一.常驻分支常驻分支为一个正常开发上线流程应该会有的分支。1.master/prod/production主分支,又称为生产环境分支,有时可能会使用(prod/production)来代替,生产环境的部署分支,生产环境相关操作,如:打包等应从改分支进行。2.dev全称(Develop),开发分支,我们正常的需求开发等,应该使用该分支。开发环境的部署和打包,使用该分支。3.pre全称(Pr

2020-05-18 12:44:46 1566 1

原创 加密解密篇

前后端加密解密。前端AES加密,前端RSA加密。后端AES加密,后端RSA加密。非对称加密,对称加密,摘要加密。

2020-05-12 11:12:14 687 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 2719

原创 SpringBoot限流拦截器(结合业务)

SpringBoot限流拦截器(结合业务)背景从网络安全和系统稳定性来看,限流是非常有必要的。一些网关,可以帮我们完成限流熔断。但是,在某些场景,当与实际业务相结合时,网关的限流也就不那么方便了。1.目的1.解决业务和限流合并的情况。如,同一个接口,每个用户,在一段时间(10秒)内只能请求几次(4次)。2.并且可以快速的调整这个限制的频率(动态修改)SpringBootRe...

2020-04-05 20:22:23 714

原创 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 1694

原创 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 3975 2

原创 Java8 Lambda 使用总结

一、演示示例1.遍历List<Integer> integerList = new ArrayList<>();integerList.add(1);integerList.add(2);integerList.add(3);integerList.stream().forEach(integer -> { System.out.println(inte...

2020-01-21 13:18:14 764

原创 SpringBoot 1.5 JPA MongoDB 设置多数据源

SpringBoot 1.5 JPA MongoDB 设置多数据源

2020-01-20 13:56:04 925 1

原创 Ant Design Table Pagination案例

Ant Design Table完整案例包括表格,分页,请求数据,页面变动请求数据等…组件包括 table,pagination1. 代码import React from 'react';import {Table} from 'antd';import {getRecordList} from '../../api/recordApi';export default cla...

2020-01-09 15:13:32 6336

原创 Swagger-UI 自定义显示返回状态码

Swagger-UI 自定义显示返回状态码注: Swagger-bootstrap-ui 方法同样Swagger,作为一个在线文档,是非常好用的,正确的使用这个,可以使我们少些很多接口文档。1.问题背景:做为接口文档,那必然是要有,全局错误状态码说明的功能。而Swagger在参数,相应,都用相应的注解,同样,在状态码也是有相应的注解的。默认的状态码,只有200,如下:2.单接口...

2020-01-03 16:45:43 11063 7

原创 自己实现注解式权限校验(SpringBoot)

权限校验(SpringBoot注解式)权限校验是很多情况都会用到的,结合Java注解和拦截器,直接在Controller层的方法上添加一个注解,可以无侵入式的进行权限校验。一.Java注解1.RequestMapping我们打开一个最常用的Spring注解可以看到,RequestMapping注解上,还有几个注解,分别代表①Target:注解目标(如:可以在方法、类、参数中使用)...

2019-12-20 10:47:29 3787 2

原创 Netty-SocketIO 集群解决方案

Netty-SocketIO 集群解决方案Netty-SocketIO作为一个Socket框架,使用非常方便,并且使用Netty开发性能也有保证。但是,我在使用Netty-SocketIO框架时,却发现,国内的资料比较少,虽然有些Demo级别的技术分享,但是关于集群解决方案,并没有什么较好的解决方法。所以,博主结合GitHub上的Issues,实现了一种集群的解决方案。一. 解决方案原......

2019-12-12 13:41:00 11445 11

SpringMVC简易项目

Spring+SpringMVC+Mybatis+MySQL 开发环境:Eclipse+Tomcat8.5 SSM简易项目(增删改查),内容为食堂管理系统,不过自己可以随便更换。 简单的SSM整合项目。内含SQL建表语句。

2019-11-22

jdk-linux-x64.zip

64位Linux下的JDK,先解压一次。 由于骨文公司的官网,现在下载比较麻烦,所以上传jdk-8u181-linux-x64.tar.gz

2019-06-21

Vue TodoList完整案例

案例根据 http://todomvc.com/examples/vue/ 编写 完成功能:完成了所有的功能,如:添加、双击修改、ESC键取消编辑、清除所有已完成任务、一键全选任务、自动聚焦,本地保存等等。

2018-09-05

Vue TodoList案例

案例根据 http://todomvc.com/examples/vue/ 编写 完成功能:添加、双击修改、ESC键取消编辑、清除所有已完成任务、一键全选任务等等。

2018-09-02

Node多人博客系统

实现功能:登录、注册、发表博客、发表评论、更改密码、退出登录、删除账号、更改头像、搜索、浏览次数、回复量等等.... 主要技术: Express、art-template、multer、Markdown等等,数据库使用MongoDB。

2018-08-22

Node学生管理系统(Express+MySQL)

使用Node编写的一套学生管理系统(增删改查),数据库使用MySQL。 使用Express框架,和art-template模板引擎。

2018-08-12

Node学生管理系统(Express+MongoDB)

使用Node编写的一套学生管理系统(增删改查),数据库使用MongoDB。 使用Express框架,和art-template模板引擎。

2018-08-12

Student-Express

完成功能:实现对“学生信息”的增删改查。并且实现了数据持久化。 使用到的技术:基于Express框架和art-template模板引擎。

2018-08-09

NodeChat-express

使用Node.js Express框架,搭建的一个简易的聊天室,没有数据持久化。 功能概述: 可以模拟聊天室,每个人自定义用户名和消息,在“首页”发表“评论”。

2018-08-06

Nodejs简易聊天室

使用Node.js搭建的一个简易的聊天室,没有数据持久化。 功能概述: 可以模拟聊天室,每个人自定义用户名和消息,在“首页”发表“评论”。 使用到:Bootstrap、art-template模板引擎。

2018-08-02

SSM简易项目(增删改查)

Spring+SpringMVC+Mybatis+MySQL 开发环境:Eclipse+Tomcat8.5 SSM简易项目(增删改查),内容为食堂管理系统,不过自己可以随便更换。 简单的SSM整合项目。内含SQL建表语句。

2018-07-29

空空如也

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

TA关注的人

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