自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Lee的博客

记录能帮助人的文章

  • 博客(123)
  • 资源 (1)
  • 收藏
  • 关注

原创 Xshell个人版和学校版

https://www.netsarang.com/download/down_form.html?code=622

2021-04-27 16:30:27 35

原创 Centos7设置静态IP,亲测3遍可用

前言之前自己就试过,配置好后,一直ping不通,后来就不了了只了,今天在搭建flink伪集群,不设置固定IP的话,以后就要天天改配置文件了,今天试了好多,网上也看了好多,发现千篇一律的不成功,好待最后自己摸索成功了,记录下以后再玩虚拟机设置静态IP,防忘啊!1、找到配置IP文件的地方vi /etc/sysconfig/network-scripts/ifcfg-ens33有可能你的文件名后缀不是ens33,直接打开。在最后面加上4个参数,我加粗标识了,BOOTPROTO=static和ONB

2021-02-23 15:27:52 53

原创 java获取上周和上上周的开始时间和结束时间

前言最近有个需求,需要查询前2个自然周的数据作对比,那首先要考虑的就是怎么获取前2个自然周的时间,查了下网上发现太乱了,自己考虑了下自己写个,思路也很简单,就是在当前时间基础上,往前偏移。例如:当天是2021年2月07号上周的自然周时间【2021-01-25 00:00:00 ~ 2021-01-31 23:59:59】,上上周的自然周时间【2021-01-18 00:00:00 ~ 2021-01-24 23:59:59】依赖导入hutool-all依赖,因为使用了hutool中时间工具

2021-02-07 17:14:17 516 1

原创 MybatisPlus的分页坑

1

2021-01-26 13:45:13 295

原创 Hutool的发送邮件,简单明了

我使用的是163的邮箱,使用其他的别忘了换成其他的

2020-09-28 10:09:25 2491 1

转载 MyBatis的flushCache和useCache的使用注意

之前在利用MyBatis做开发的时候,遇到了一个问题,使用select配置的时候发现前后两次的结果是一样的,并且使用statementType="CALLABLE"配置,然后在配置中写PL/SQL代码去更新数据库的时候,发现只更新了第一次,第二次在对传进来的参数没有变化的情况下,就不会在进入PL/SQL代码中执行。后来发现,这是由于MyBatis缓存的原因。在MyBatis中有flushCache、useCache这两个配置属性,分为下面几种情况:(1)当为select语句时:flushCache默认

2020-08-26 12:21:14 727

转载 Mybatis-Plus开启SQL打印

方法一:mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #开启sql日志方法二:logging: level: com.chz.mapper: debug

2020-08-26 11:15:22 1823

原创 poi导出Excel,表格画斜线,并设置数据

效果图画斜线代码如下: ExportParams params = new ExportParams("【" + request.getYearStr() + "】花纹统计明细数据", "数据"); params.setType(ExcelType.HSSF); Workbook workbook = ExcelExportUtil.exportExcel(params, colList, list); Sheet sheet = workbook.getSheetAt(0)

2020-06-23 15:36:21 1804 5

原创 EasyPoi导出复杂合并单元格

前言:上星期做了一个Excel的单元格合并,用的是EasyPoi,我之前合并单元格都是原生的,第一次使用EasyPoi合并也不太熟悉,看着网上自己套用,使用后发现比原生的方便些,贡献一下,也给其他用到合并而且用的是EasyPoi的小伙伴节省下时间。导出模板:坐标:版本号,自己来定,可以去官网查看:EasyPoi官网 <!-- easypoi 导入包 --> <dependency> <groupId>cn.afte

2020-06-08 13:38:18 2750

原创 高性能的BeanUtils(cglib版本)

不多说,直接上代码import lombok.experimental.Accessors;import org.springframework.cglib.beans.BeanCopier;import java.io.Serializable;import java.util.concurrent.ConcurrentHashMap;/** * @author:Lee * @date: 2020/2/19 * @description:注意,当复制和被复制任意一个对象包含了@.

2020-05-19 08:48:48 197 1

原创 PO自动转换为DTO(mapstruct-解决手动转换)

订单

2020-05-13 19:45:58 585

原创 分分钟让你学会Jenkins自动化部署SpringBoot项目

1、安装jenkins,在jenkins上安装jdk、git、maven以及jenkins免密登录到其他服务 器就不说了,这些网上一大把。2、看下项目中的配置,按照我的目录结构创建这2个文件和文件夹assembly.xml文件中的内容,是为了方便打包成zip格式的,而zip中包含了jar、bin、lib,如下:<assembly xmlns="http://maven.a...

2020-04-08 15:32:47 409

原创 Linux下安装Nginx (yum方式)

执行如下命令进行yum安装nginxyum install nginx查看nginx版本# 查看nginx版本nginx -v# 查看编译参数nginx -V查看安装目录 rpm -ql nginx查看配置文件# 用于日志切割/etc/logrotate.d/nginx安装完成之后目录如下:nginx启动目录:/usr/sbinnginx配...

2020-03-27 15:18:27 1128

转载 git:GitLab代码回滚到特定版本

在当前branch上多次commit代码并且push后,发现不符合要求,需要回滚到特定的版本。步骤如下:1、查找commitId(1)用命令行打开git项目路径,输入git log命令查看commit记录,如下:$ git log(2)也可以去gitlab托管平台 History 看commitidd580ea7dab097d8ea6d658adbc7e9d57ef22669a...

2020-03-26 17:52:56 1175

原创 linux系统下完全卸载Jenkins

1、关闭tomcat:./shutdown.sh2、删除/webapps/jenkins下所有文件:rm -rf jenkins3、删除配置文件:rm -rf /root/.jenkins/

2020-03-26 12:11:56 1945 1

原创 Arthas性能检测

下载:​​​​​​​curl -O https://alibaba.github.io/arthas/arthas-boot.jar帮助文档:https://alibaba.github.io/arthas

2020-03-18 17:15:06 319

原创 Mysql根据汉字英文字母进行排序

如果数据库默认是GBK的,不需要转换,如果是UTF-8的,转换成GBK就可以了,GBK默认安装英文字母进行排序select * from permission ORDER BY CONVERT(name USING GBK) ASC...

2020-03-17 15:46:22 1117

转载 Rxjava2入门教程四:Scheduler线程调度器

Scheduler(线程调度器)赋予RxJava简洁明了的异步操作,可以说是RxJava中最值得称道的地方。在之前的代码中,Observable发射数据流,Observer接收响应数据流,以及Operators加工数据流均是在同一个线程中,实现出来的是一个同步的函数响应式。但是函数响应式的实际应用却不是这样的,大部分都是后台处理,前台响应的一个过程。Observable生成发射数据流,以及Ope...

2020-03-12 16:29:56 177

转载 Rxjava2入门教程三:Operators操作符

Operators操作符操作符(Operators):其实质是函数式编程中的高阶函数,是对响应式编程的各个过程拆分封装后的产物。以便于我们操作数据流。按照其作用具体可分为以下几类:创建:创建一个可观察对象Observable并发射数据过滤:从Observable发射的数据中取出特定的值变换:对Observable发射的数据执行变换操作组合:组合多个Observable,例如:{1,2...

2020-03-12 16:28:00 55

转载 Rxjava2入门教程二:Observable与Observer响应式编程在Rxjava2中的典型实现

在RxJava中,函数响应式编程具体表现为一个观察者(Observer)订阅一个可观察对象(Observable),通过创建可观察对象发射数据流,经过一系列操作符(Operators)加工处理和线程调度器(Scheduler)在不同线程间的转发,最后由观察者接受并做出响应的一个过程ObservableSource与Observer是RxJava2中最典型的一组观察者与可观察对象的组合,其他四组可...

2020-03-12 16:25:15 99

转载 Rxjava2入门教程一

RxJava是函数响应式编程思想在java语言上的具体实现。RxJava2在这一实现下,对Rxjava1进行了全面重写,如果之前没接触过RxJava,可以直接从Rxjava2入门,而不需要了解RxJava1。在使用RxJava2之前,对于Android开发,需要在项目中添加以下依赖 implementation "io.reactivex.rxjava2:rxjava:2.1.3"...

2020-03-12 16:23:25 66

原创 自己常用的一个递归代码片段及获取级联代码

1、查询出所有的权限2、创建一个集合存放所有的一级菜单1、 遍历一级菜单 //递归 for (MerPermissionVo pid : parentList) { List<MerPermissionVo> childList = dgPermissionList(allList, pid.getId()); ...

2020-02-27 14:34:05 127

原创 用poi解析带密码的xls、xlsx文件

FileInputStream fileInputStream = request.getFileInputStream(); Workbook sheets = null; try { String password = request.getPassword(); if (StringUtils....

2020-01-06 10:17:01 571

转载 一文秒懂 Java CompletableFuture ( 下 )

上一章节中我们讲解了 CompletableFuture 的一些基本用法,比如如何使用和如何处理异步计算结果。本章节我们继续,主要讲解如何使用 CompletableFuture 来组合异步计算的结果组合 FuturesCompletableFuture API 最吸引人的部分,应该是能够在一系列链式计算步骤中组合 CompletableFuture 实例。这种链式的结果本身就是Compl...

2019-12-26 18:07:02 80

转载 一文秒懂 Java CompletableFuture ( 上 )

本文我们来了解下 Java 8 引入的 CompletableFuture 类,了解下该类提供的功能和用例。Java 中的异步计算异步计算很难推理的,因为我们的大脑是同步的,会将任何计算看成是一系列的同步计算。我们在实现异步计算时,往往会把回调的动作分散在代码中或者深深地嵌套在彼此内部,这种情况下,当我们需要处理其中一个步骤中可能发生的错误时,情况变得更糟。人生的一大悲剧是,尽管 ...

2019-12-26 18:03:16 83

转载 redis相关以及redis做分布式锁可能出现的问题

前言:有一篇文章对redis的介绍不错,拿来加深印象。在Redis中,允许用户设置最大使用内存大小server.maxmemory,当Redis 内存数据集大小上升到一定大小的时候,就会施行数据淘汰策略。1.volatile-lru:从已设置过期的数据集中挑选最近最少使用的淘汰2.volatile-ttr:从已设置过期的数据集中挑选将要过期的数据淘汰3.volatile-random:...

2019-12-25 09:38:33 1365

原创 Redis的Key过期机制

这个东西之前配置过,今天本来记录一下,加深印象,结果忙了一下午,问题出在redis的配置中,即将崩溃,这里提个醒,redis的配置文件中,对于每一行配置前面别有空格,正确做法一直顶到头,这个真是恶心的配置,一点都不智能,因为开启key过期要修改配置文件,所以在修改的时候别忘了这个坑。我使用的windows版本的redis为Redis-x64-3.2.100,使用的是.msi版本的,使用...

2019-12-23 17:45:14 861

原创 分布式任务调度中心

xxl的网址https://www.xuxueli.com/page/projects.html总结的非常好,可以借鉴一下https://www.cnblogs.com/ysocean/p/10541151.html

2019-12-17 18:09:06 323

转载 关于Runtime.getRuntime().exec(),产生阻塞的2个陷阱

背景相信做java服务端开发的童鞋,经常会遇到Java应用调用外部命令启动一些新进程来执行一些操作的场景,这时候就会使用到Runtime.getRuntime().exec(),然而这个方法如果不谨慎很容易掉进陷阱。我们的一个PDF转码服务就踩到了这个坑掉进陷阱,这个转码服务主要是对pdf进行加密和转码成swf。这个服务上线后大部分时间都是稳定运行的,但是隔一段时间就会死掉,然后人肉手动重...

2019-12-17 18:05:59 473

转载 【Java并发】ReadWriteLock读写锁的使用

说到Java并发编程,很多开发第一个想到同时也是经常常用的肯定是Synchronized,但是小编这里提出一个问题,Synchronized存在明显的一个性能问题就是读与读之间互斥,简言之就是,我们编程想要实现的最好效果是,可以做到读和读互不影响,读和写互斥,写和写互斥,提高读写的效率,如何实现呢?Java并发包中ReadWriteLock是一个接口,主要有两个方法,如下:pu...

2019-12-16 14:20:04 85

转载 Java中的双重检查锁(double checked locking)

在实现单例模式时,如果未考虑多线程的情况,就容易写出下面的错误代码:public class Singleton { private static Singleton uniqueSingleton; private Singleton() { } public Singleton getInstance() { if (null == u...

2019-12-03 17:52:25 66

转载 Java-分布式锁三种实现方式介绍

一、为什么要使用分布式锁我们在开发应用的时候,如果需要对某一个共享变量进行多线程同步访问的时候,可以使用我们学到的Java多线程的18般武艺进行处理,并且可以完美12的运行,毫无Bug!注意这是单机应用,也就是所有的请求都会分配到当前服务器的JVM内部,然后映射为操作系统的线程进行处理!而这个共享变量只是在这个JVM内部的一块内存空间!后来业务发展,需要做集群,一个应用需要部署到几...

2019-12-02 11:27:56 412

原创 使用Redisson实现分布式锁(高清)

1、maven坐标 <dependency> <groupId>org.redisson</groupId> <artifactId>redisson</artifactId> <version>3.5.7</version&gt...

2019-12-02 11:24:29 257

原创 前后端传递参数类型的转换

@InitBinder,这个注解相当于输入输出参数的一个转换,把下面的方法放在spring的bean中就可以生效了,下面的例子是把前端传递的时间戳转换为date,之后响应的时候吧date转换为时间戳。@InitBinder protected void initBinder(WebDataBinder binder) { binder.registerCustom...

2019-11-29 10:21:22 460

原创 生成二维码工具类(已在多个生产系统使用)

content可以是一个url,返回的是一个字节数组,之后可以把字节数组写到某一个图片文件中,也可以上传到oss或者七牛。import com.google.zxing.BarcodeFormat;import com.google.zxing.EncodeHintType;import com.google.zxing.MultiFormatWriter;import com....

2019-11-29 09:32:46 141

原创 把jar包打成maven坐标到仓库

mvn install:install-file -Dfile=F:\idea-workspace\taoke\maven-3.6.1\repository\jna-3.0.9.jar -DgroupId=com.sun.jna -DartifactId=jna -Dversion=3.0.9 -Dpackaging=jar

2019-11-26 10:39:06 384

原创 获取客户端的IP地址(过滤代理)

下面的工具, 能满足绝大部分应用环境,但并不是百分百。 //获取ip public static String getIpAddress(HttpServletRequest request) { String ip = null; //X-Forwarded-For:Squid 服务代理 String ipAddresses =...

2019-11-20 11:57:07 187

原创 获取当前时间到一天剩余的秒数

/** * 获取当前时间到一天结束的剩余秒数 * * @param currentDate * @return */ public static Integer getRemainSecondsOneDay(Date currentDate) { LocalDateTime midnight = LocalDateTi...

2019-11-20 11:36:06 1283

原创 windows杀死指定端口进程

查询指定端口netstat -aon|findstr "1011"杀死指定进程taskkill /pid 24604 -t -f

2019-11-08 09:05:02 137

原创 Serializable和Externalizable浅析

Java序列化是指把Java对象转换为字节序列的过程;而Java反序列化是指把字节序列恢复为Java对象的过程。从而达到网络传输、本地存储的效果。本文主要要看看JDK中使用Serializable和Externalizable接口来完成Java对象序列化,并给出部分属性序列化的几种方式,最终做出Serializable和Externalizable接口的几个方面的对比。注:本文不讨论为什...

2019-10-28 17:42:45 165

gerrit-2.10.3.1

cadn上的gerrit安装包全都要分,昨天为了下这东西,忙了大半天也没下城,外网要,现在免费的软件都不让用了,这个送给大家,做个好人。设置成免费的设置不了,谁想要留言免费送。

2018-08-21

空空如也

空空如也

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

TA关注的人 TA的粉丝

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