自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Lenjor 的博客

学习一些 新技术

  • 博客(54)
  • 收藏
  • 关注

原创 SpringBoot增加全局traceId日志追踪

*** @description requst包装类,构建可重复读取inputStream的request*/@Override@Override@Override@Override@Override@Override@Override/*** @Description 全局请求增加traceId日志追踪,保存到ThreadLocal的MDC中*/@Override@Overridetry {if(!}else {

2024-01-25 10:17:46 476 1

原创 python简单网页爬虫

python简单网页爬虫

2023-06-08 14:55:08 1323

原创 防止表单重复提交,自定义重复提交过滤器

上产环境中推荐解决方案:前端提交防重 + 后端自定义重复提交过滤器。

2023-04-27 14:38:20 835

原创 直接修改Jar包class文件方法

使用JBE直接修改Jar包class文件

2022-11-04 11:36:28 8902 2

原创 Python批量转换文件夹下图片为PDF

Python批量转换文件夹下图片为PDF文件

2022-07-21 09:36:09 1195 2

转载 javascript前端导出Excel简单写法

javascript前端导出Excel文件简单写法

2022-07-12 18:12:05 1441

原创 Python切割大日志文件几种方法

文章目录背景方法一:指定目标文件数量分割方法二:指定文件大小分割方法三:指定目标行数分割背景工作线上报错了,找运维下载了线上的日志文件排查问题,但是日志文件太大了,没办法用NotePad++打开,于是乎想着要切割一下日志文件方法一:指定目标文件数量分割import os# 要分割的文件sourceFileName = 'normal-app.log'# 分割的文件个数fileNum = 10 def cutFile(): print("正在读取文件...")

2022-04-20 15:14:49 3083 2

原创 Python读写Excel表,并实现表头置换数据填充

Python读写Excel表,并实现表头置换数据填充

2022-04-08 14:30:49 1991

原创 Python pdf 转jpg/png工具

工作中遇到需要批量导出PDF为jpg的场景,因而写了个小工具解放双手

2022-03-25 09:00:00 2154 1

原创 Java反射获取枚举类型值列表对外提供服务

文章目录一、前言在工作中原本一些枚举值都是在Apollo配置的,但是有一些配置没有必要从配置中心获取,比如简单的类型下拉框的选择和页面回显。实现的原理很简单,就是通过自定义注解,加在需要对外提供的枚举类上。我这里是定义了三个注解(类标记,key标志,value标记)二、关键代码实现/** * @description 枚举类标记,标记了会对外提供列表,默认取类名称 */@Retention(RetentionPolicy.RUNTIME)@Target(value = ElementTyp

2022-02-28 10:35:54 480

原创 Java内网IP判断工具类

/** * @author lenjor * @description ip工具类 * @date 2022-02-25 15:24 */public class IpUtil { /** * 私有IP: * A类 10.0.0.0-10.255.255.255 * B类 172.16.0.0-172.31.255.255 * C类 192.168.0.0-192.168.255.255 * 本机地址网段: 127这个网段环回地址

2022-02-25 17:01:51 874

原创 Postgre数据库Jsonb字段json条件过滤

Postgre Jsonb 条件过滤

2021-12-27 14:41:34 1567

原创 MySQL数据表结构迁移到Postgre的Python脚本

文章目录前言程序代码main.pytemplateObject.pycolType.pywrite_table_ddl测试前言工作中遇到了需要把MySQL换成Postgre的需求,数据表需要做迁移,手动修改每一张表工作量比较大,因而写了一个简单的python脚本来完成这件事情。程序的原理是类型转换,字符串替换,没有完成的事情是自增ID会丢失,并没有创建Serial序列来实现自增ID,因为我们的框架中的雪花ID本身就实现了自增MySQL和Postgre的数据类型映射关系:https://en.wiki

2021-06-02 12:36:40 559

原创 Kubernetes DevOps环境搭建(六):安装Jenkins,pipeline发布应用到Kubernetes集群

文章目录前言一、安装运行Jenkins安装Jenkins插件,安装推荐的插件即可配置项目Git地址配置编译打包pipeline脚本前言Docker-Github地址:https://github.com/jenkinsci/dockerJenkins官方文档: https://www.jenkins.io/doc/book/installing/docker/一、安装运行Jenkins# 【可跳过】拉取Jenkins镜像, lts 是稳定版,可以直接跳过镜像拉取,直接run,这样会自动去下载镜像

2021-02-28 23:10:18 239

原创 Kubernetes DevOps环境搭建(五):安装GitLab并创建Demo项目

文章目录前言:一、下载GitLab镜像方式一:从镜像仓库拉起镜像【下载的镜像比较大,需要很长时间,建议采用方式二】方式二:在电脑网速比较好的主机下载官方的镜像,然后传私服仓库中去二、Docker运行GitLab三、浏览器登陆GitLab四、创建一个Demo项目测试前言:GitLab官方文档: https://about.gitlab.com/install/#centos-7刚开始的时候是在1核1G的机器上面部署,应该是内存不够没成功起来,看到GitLab的官方推荐的内存是4G,内心是有点绝望的,我

2021-02-28 23:04:51 368

原创 10种基本排序算法

文章目录排序算法分类各排序算法复杂度分析(一)冒泡排序(Bubble Sort)算法描述(二)快速排序(Quick Sort)算法描述(三)、简单插入排序(Insertion Sort)算法描述(四)、希尔排序(Shell Sort)算法描述(五)、简单选择排序(Selection Sort)算法描述(六)、堆排序(Heap Sort)(七)、归并排序(Merge Sort)算法描述(八)、计数排序(Counting Sort)算法描述(九)、桶排序(Bucket sort)(十)、基数排序(Radix S

2021-02-28 23:00:20 2374 2

原创 Spring jdbcTemplate.queryForList 报错:Incorrect column count:expected 1, actual 7

问题描述记录一个坑,在工程之前封装了Dao层,时间过得有点久了,使用的时候遇到了一个报错信息Caused by: org.springframework.jdbc.IncorrectResultSetColumnCountException: Incorrect column count: expected 1, actual 7// 封装代码public <T> List<T> queryForListClassType(String sql, Class<T>

2021-02-26 12:00:14 1902

原创 Kubernetes DevOps环境搭建(四):使用kubeadm安装Kubernetes集群

文章目录一、前言二、安装Docker、kubectl、kubeadm三、配置K8S集群前的准备四、使用`kubeadm`初始化Kubenets集群五、安装pod网络(CNI网络插件)(1)在线下载的形式配置,下载网络插件配置(Kubernetes v1.7+ 以上)(2)如果上述方法遇到如下如问题五、部署一个Pod测试集群一、前言K8s官方安装操作文档: http://docs.kubernetes.org.cn/457.html二、安装Docker、kubectl、kubeadm全部的机器都要安装

2021-02-07 08:56:36 262

原创 Kubernetes DevOps环境搭建(三):安装私有镜像仓库Harbor

前言一、docker-compose 安装(1)在线安装(不推荐,我试过直接使用官方的安装方法,下载非常慢,不太建议使用在线安装)(2)离线安装(推荐)二、Harbor 安装下载离线安装包安装包上传到服务器,我这里安装的路径是: /home/lenjor/harbor配置HTTPS证书1. 生成证书颁发机构证书2. 生成服务器证书3. 把证书配置到Harbor和Docker配置 harbor.yml重启Docker Engine运行安装程序脚本浏览器打开配置的 ..

2021-02-07 08:45:18 437

原创 Kubernetes DevOps环境搭建(二):Docker安装Mysql,Redis

前言一、Docker 安装 Mysql创建用户并授权,授权以后就能使用Navicat直接进行连接了二、Docker安装Redis前言本文只是安装单机版的Mysql和Redis,Mysql集群和Redis集群配置暂不进行配置。一、Docker 安装 MysqlRunoob 教程文档-Docker安装Mysql镜像 : https://www.runoob.com/docker/docker-install-mysql.html本文参考了Runoob的安装步骤,结合自己的需要修改了..

2021-02-07 08:33:45 182

原创 Kubernetes DevOps环境搭建(一):Docker环境搭建

前言一、Deops 架构搭建前置环境搭建参考Deops 架构搭建二、Docker 搭建三、配置开启自启动四、修改镜像仓库地址五、运行Docker hello-world 程序前言初衷:最近学习了一下完整的K8s系列,整个过程中遇到了一些坑点,也有一些收获,写份文档记录一下搭建的Deops架构:JDK 1.8,Docker,Harbor,GitLab,Jenkins,Kubernets重点强调:在整个搭建的过程中,建议大家看我附上的官方文档资料一、Deops 架构搭建前..

2021-02-07 08:32:41 423

原创 VM Box 安装CentOS7.6和网络设置

文章目录一、安装Oracle VM VirtualBox二、网络配置三、Linux 用户管理四、使用XShell连接一、安装Oracle VM VirtualBox官网下载安装包,官网地址:https://www.virtualbox.org/下载CentOs镜像,官网:https://www.centos.org/建议使用阿里云的镜像地址建议采用迅雷下载比较快安装Virtual Box,一路点击next就好了安装Virtual Box完成以后,新建一个虚拟机注

2021-02-07 08:28:27 534

原创 SpringBoot maven 配置多环境 & Junit单元测试加载src/main/resources目录下资源文件

SpringBoot项目多种环境配置文件选择使用Maven的形式配置项目多环境单元测试使用和 src/main/resources 一样的配置文件参考文献SpringBoot项目配置多环境方式(1) SpringBoot官方推荐的形式properties多环境配置,通过 application.properties 设置 spring.profile.active 的值实现,具体的实现可以参考这篇文章SpringBoot多环境切换: https://blog.csdn.net/liu9110.

2021-01-28 16:42:39 1885

原创 Java读取Google电子表格

Google官方文档Demo程序示例运行结果Google官方文档Google表格接入文档地址:https://developers.google.com/sheets/api/quickstart/java?hl=itDemo程序示例官方文档采用的是gradle的方式进行构建的,我这里是采用的maven的方式进行构建,原理上一样(1) 授权并下载Google的授权证书文件,直接在网页上面点击授权对应的应用,然后下载即可,以下是我授权的Demo应用文件我的Demo授权文件:{"insta.

2021-01-28 15:30:47 952 4

原创 Gatling基础入门,快速上手

一、准备工作二、安装Scala插件三、下载Gatling包四、运行官方的Demo测试用例一、准备工作(1)Java JDK(2)IntelliJ IDEA (网上教程很多,不再赘述)二、安装Scala插件打开 IDEA ,点击【IntelliJ IDEA】 -> 【Preferences】 -> 【Plugins】,搜索 “Scala”,搜索到插件安装重启即可。安装Scala插件的目的是为了IDEA能够支持Scala语法,方便我们编写测试脚本三、下载Gatling包..

2021-01-23 10:40:36 2534

原创 Shell基本语法

一、变量字符串数组二、参数传递三、运算四、逻辑运算符五、条件分支六、循环控制七、函数八、Shell 输入/输出重定向九、Shell 文件包含一、变量1. 变量命名之间不能有空格2. 使用变量需要使用$符号,最好使用{}来规定变量的边界,可以在字符串中直接使用变量3. 只读变量用 readonly 修饰4. 删除变量 unset (unset 命令不能删除只读变量)5. 字符串推荐使用双引号(可以有变量,也可以有转义符)字符串拼接字符串your_name=.

2021-01-23 09:49:48 151 1

原创 Java实现IP库归属地查询

一、IP库文件下载,各产品对比二、IP库的实现有很多种,我这里采用的是GeoIP2Jar 包依赖引入下载好IP库文件代码实现运行结果三、工程代码下载参考文章一、IP库文件下载,各产品对比下面这个文章有几个比较通用的IP库产品对比分析,这里就不进行赘述了IP查询产品对比二、IP库的实现有很多种,我这里采用的是GeoIP2Jar 包依赖引入<dependency> <groupId>com.maxmind.geoip2</groupId&gt.

2021-01-05 08:57:09 1487 1

原创 免费常用IP归属地查询API

文章目录1. ip-api.com ,可切换显示语言2. 百度3. 太平洋4. 126记录几个免费的IP地址归属地查询的接口,其实这些IP归属地的查询,实现起来也不难,主要是要有一个IP库文件就能实现,以后有空自己实现一下。1. ip-api.com ,可切换显示语言http://ip-api.com/json/117.136.12.79?lang=zh-CN{ "status": "success", "country": "中国", "countryCode": "CN"

2020-12-30 18:52:41 35712 15

原创 浅谈Lambda表达式

文章目录一、Lambda表达式简介二、Lambda表达式的基础语法三、Lambda语法精简四、JDK内置的常见接口五、方法引用六、参考文章&视频一、Lambda表达式简介什么是Lambda表达式?Lambda是Java 8添加的一个新的特性。说白了,Lambda就是一个匿名函数为什么要使用Lambda?使用Lambda表达式可以对一个接口进行非常简洁的实现具体可以对比一下下面几种写法,这三种方式实现的功能完全一致 // 测试使用的main方法 public s

2020-12-24 16:46:03 161 1

原创 网络通信基础(三)浏览器输入网址背后发生了什么

文章目录问题:当我们输入一个域名后,发生了什么一、DNS 域名解析二、发送数据包以太帧组成三、`ARP` 地址解析协议(IPv4使用,IPv6使用 NDP协议)`ARP` 工作过程详解四、数据包传输过程总结参考文章问题:当我们输入一个域名后,发生了什么当我们在浏览器输入一个域名,按下回车键之后,到我们能够看到页面,这个过程中,到底发生了什么事情,下面我们开始一步步分析。一、DNS 域名解析DNS 域名解析主要可以分为三个过程读缓存浏览器会把已经解析过的域名缓存起来,如果缓存中存在,解析结束。

2020-12-24 15:24:27 200

原创 Linux安装Maven和Git

一、Maven的安装方法一:直接输入 mvn -v 命令, 直接系统安装法,如下图,直接按提示输入y,就能直接安装成功方法二:解压包安装法1、maven包的下载有两种方法2、解压到对应的目录,我安装的目录是:/usr/local/maven3。3、配置maven环境变量4、查看安装结果, mvn -v 有出现安装的maven信息证明安装成功二、Git安装参考文章一、Maven的安装方法一:直接输入 mvn -v 命令, 直接系统安装法,如下图,直接按提示输入y,就能直接.

2020-12-06 01:45:33 207

原创 Linux安装JDK,并配置多个JDK切换

方法一(不推荐):直接在Linux控制台使用命令获取可以安装的JDK版本进行安装安装的方法请查看:Centos中yum方式安装java# 查看可以安装的JDKyum -y list java*# 安装对应的JDK版本yum -y install java-1.8.0-openjdk【填对应的版本的名称】方法二(推荐):在Oracle下载对应版本的JDK(这里以二进制的解压版安装为例)进入Oracle官网:https://www.oracle.com/拉到底部选择Develo

2020-12-05 22:55:03 514

原创 适配器模式(Adapter pattern)

文章目录定义适用场景示例代码测试结果:总结定义适配器模式(Adapter Pattern):将一个接口转换成客户希望的另一个接口,使接口不兼容的那些类可以一起工作,其别名为包装器(Wrapper)。适配器模式既可以作为类结构型模式,也可以作为对象结构型模式。适用场景1、 你想使用一个已经存在的类,而它的接口不符合你的需求2、 你想创建一个可以复用的类,该类可以与其他不相关的类或不可预见的...

2020-01-15 00:54:06 170

原创 网络通信基础(二)HTTP和HTTPS通信协议

文章目录HTTP/HTTPS请求的组成部分相关概念URIURLDNSCDNHTTPSHTTP/HTTPS请求包含的内容请求方式(这里只列举最常用的四种)协议类型和版本Cookie其他的一些参数为什么需要HTTPS?HTTP 特点HTTPS 的设计思想过程(1)引入对称加密,对传输内容进行加解密(2)使用非对称加密(3)使用非对称加密来生成对称加密的密钥(4)引入受信任的第三方机构签发证书浏览器如何...

2020-01-15 00:46:45 796

原创 网络通信基础(一)——HTTP(TCP/IP)通信协议

文章目录HTTP(Hyper Text Transfer Protocol)即超文本传输协议超文本:传输:协议:ISO 七层网络模型和TCP/IP四层概念模型ISO 七层网络模型TCP/IP四层概念模型一个 HTTP 请求,在整个网络中的请求过程发送过程接收过程为什么有了 MAC 层还要走 IP 层呢?IP协议和TCP/UDP协议IP协议TCP/IPTCP三次握手TCP四次挥手为什么握手只需要3次...

2020-01-12 13:03:37 3651

原创 Spring Boot IOC 容器初始化之Xml文件Bean定位加载

文章目录Xml文件Bean加载入口读取XML过程加载Bean解析Bean参数大致的加载过程Xml文件Bean加载入口 /** * Create a new ClassPathXmlApplicationContext with the given parent, * loading the definitions from the given XML files. * @par...

2019-12-21 17:42:35 353 1

原创 Spring Boot 使用FastJson实现Jsonp返回

JSONP返回实现思路在Java Web项目中,Jsonp 是非常常用的东西,这里实现Jsonp返回是通过fastjson实现的,实现效果如下测试访问接口:localhost:8080/testJsonp?platform=efunenplatform&userId=435654&language=en-US&flag=paypal&jsonpcallback...

2019-10-15 18:32:33 908

原创 策略模式(Strategy pattern)——简单工厂&反射实现

文章目录定义示例代码场景描述源代码支付简单工厂(switch 和反射两种实现)测试客户端运行结果总结定义策略模式:指的是对象具备某个行为,但是在不同的场景中,该行为有不同的实现算法。举个几个生活的例子,就是不同收入的人群采用不同的税率,登录的不同方式,支付的不同方式;在代码我们也见过策略模式,如ArrayList的排序传入的Comparator ArrayList list = n...

2019-10-03 17:29:28 327

原创 手写JDK动态代理(Implememt your own JDK dynamic proxy)

文章目录手写自己的动态代理需要重写那些内容动态生成的 $Proxy0 对象长什么样?反编译$Proxy.class代码分析实现动态代理的关键实现完整代码自定义代理类实现测试方法运行结果总结手写自己的动态代理需要重写那些内容首先我们来看看,上一篇文章代理模式(Proxy pattern)的动态代理类中,使用到了那些内容,从中找出需要重新实现的类和方法。动态生成的 $Proxy0 对象长什么样...

2019-10-03 14:29:39 198

原创 代理模式(Proxy pattern)——静态代理、动态代理

文章目录定义组成部分静态代理静态代理分析动态代理(这里以JDK的动态代理为例,动态代理一般有两个主流实现:①JDK,②cglib)动态代理分析动态代理的优点总结定义设计模式来源于生活,这次讲的代理模式也是生活中非常常见的一种场景,如:中介,媒婆,黄牛,VPN网络代理。代理模式:对某一个目标对象提供它的代理对象,并且由代理对象控制对原对象的引用。代理类负责为委托类预处理消息,过滤消息并转发消息...

2019-10-02 22:29:11 165

空空如也

空空如也

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

TA关注的人

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