自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 从iText到OpenPdf:一个更高效、更安全的PDF处理方案

在过去的几年里,iText库在处理PDF文件方面一直很受欢迎。然而,随着时间的推移,一些问题开始显现出来。首先,iText的版权问题一直是开源社区关注的焦点。其次,随着PDF处理需求的增加,iText的性能也开始受到挑战。因此,许多开发者开始寻找一个能够替代iText的方案。总之,从iText迁移到OpenPdf是一个值得考虑的决策。OpenPdf具有更好的性能、更小的内存占用、更好的安全性和更好的文档支持。如果你正在寻找一个能够替代iText的方案,那么OpenPdf是一个不错的选择。

2024-07-10 15:33:01 27

原创 DBeaver新建Elasticsearch连接报错Error downloading driver libraries解决方案

本文解决DBeaver新建elasticsearch连接的问题。

2023-09-05 16:42:41 2628

原创 Windows 10资源管理器经常无故自动重启

笔者使用的是Windows 10 专业版,之前有过一段时间在系统(软件)更新后出现资源管理器经常无故自动重启,表现为偶尔右键点击时,整个任务栏和桌面图标会消失,几秒之后再重新加载。

2023-02-15 19:56:52 5457 1

原创 Java后端返回Long类型数据与前端展示不一致(精度丢失)

接口返回数据的时候,有一个Long类型的主键字段(使用雪花算法生成的19位数字),单元测试、postman、apifox的返回数据均与数据库数据一致(1614468766644559873),前端浏览器查看返回数据却不一致(1614468766644560000)。

2023-02-01 11:18:45 2860

原创 Stream并行流parallelStream()导致的并发问题:list空指针和size大小异常

问题描述为了效率,使用Stream并行流parallelStream来遍历源list往宿list添加元素,后面在遍历宿list(LinkedList)的时候会偶发性报NullPointerException空指针异常或list size大小异常。(如果宿list使用的是ArrayList,那么还可能会报ArrayIndexOutOfBoundsException数组越界异常)测试源码import java.lang.reflect.Field;import java.util.ArrayLi

2022-05-15 13:19:57 6029

转载 使用 Java 对 Redis 集群的事务处理

前言Redis 单机是支持事务的,Redis 的事务是下面 4 个命令来实现:1.multi开启 Redis 的事务,置客户端为事务态。2.exec提交事务,执行从 multi 到此命令前的命令队列,置客户端为非事务态。3.discard取消事务,置客户端为非事务态。4.watch监视键值对,作用时如果事务提交 exec 时发现监视的键值对发生变化,事务将被取消。将是否有 watch 命令分为普通类型事务和 CAS(Check An...

2022-05-13 18:21:38 1777

原创 IntelliJ IDEA快捷键ctrl+shift+R失效的原因和解决方法

背景:最近突然发现idea的全局替换快捷键失效了,找了半天,又是卸载新装的idea插件,又是百度的,终于找到问题所在。原因:因为最近公司的协同软件从企业微信换成了飞书,于是看了下,果不其然是飞书的锅,居然还不支持自定义,太恶心了,摆明对用idea的程序员不友好,难道飞书的开发人员没有用idea的???解决方案:1.最简单粗暴的方法自然是使用快捷键时退出飞书即可,后面等飞书产品经理和开发良心发现;2.使用快捷键管理工具;3.飞书改不了就改idea的,但笔者是个强迫症,喜欢原装的

2022-04-13 18:27:14 8135

原创 Linux 实时查看日志文件(tail命令)

Linux 实时查看日志文件,最主要使用的就是tail命令。linux tail命令用于显示文件尾部的内容,默认在屏幕上显示指定文件的末尾10行。如果给定的文件不止一个,则在显示的每个文件前面加一个文件名标题。如果没有指定文件或者文件名为“-”,则读取标准输入。语法格式:tail [参数]常用参数:--retry 即是在tail命令启动时,文件不可访问或者文件稍后变得不可访问,都始终尝试打开文件。使用此选项时需要与选项“——follow=name”连用 -c<N>

2022-03-23 14:48:47 9689 2

原创 解决centos安装mysql报错 错误:依赖检测失败mysql-community-common(x86-64) >= 5.7.9 被 mysql-community-libs需要

备注:OS :CentOS 7.9 x64DB : MySQL 5.7.32一.问题描述笔者在用rpm安装mysql时遇到了如下错误error: Failed dependencies: mysql-community-common(x86-64) >= 5.7.9 is needed by mysql-community-libs-5.7.36-1.el7.x86_64 mariadb-libs is obsoleted by mysql-community-lib...

2022-03-03 14:30:55 5848 1

原创 Centos7安装MySQL初始化缺少libaio.so.1

备注:OS :CentOS 7.9 x64DB : MySQL 5.7.32一.问题描述安装mysql到了初始化这个步骤的时候,突然报错,缺少ibaio.so.1 这个包。二.解决方案2.1 yum搜索lbaio包yum search libaio这里注意:yum install libaio默认安装的是32位的,必须指定安装64位的。2.2 yum安装64位的labioyum install libaio.x86_64 -y安装完成后查看下是否安装成功

2022-03-02 17:44:40 2083

原创 Excel的某列拼成逗号分隔的字符串

在工作中有时会遇到下载线上数据库后把某个字段(最常见的就是id)的数据拼成逗号分隔的字符串,现在笔者简介下自身的方法,如有更好更快的方法,欢迎各位在评论区指教!

2022-02-22 18:41:24 5697 2

原创 IDEA导入的maven项目右键没有maven,窗口右侧没有maven选项

背景笔者导入了一个maven项目,发现跟平时不太一样:1、最显眼的就是idea窗口右侧没有maven选项2、子工程的图标没有maven专有的蓝色小方块3、项目右键没有maven选项解决方案找到该项目的pom.xml,右键Add as Maven Project,解决!...

2022-02-11 09:20:06 6243 1

原创 个推(uniPush)简介及使用经验

个推是商用级的移动应用消息推送云服务供应商,客户端SDK支持Android和iOS两大平台,开发者集成SDK后,可以通过个推强大的web端及丰富的API开放接口,发送推送消息、统计分析推送效果。个推为开发者提供了如下3种消息推送方式:toSingle :简称“单推”,指向单个用户推送消息; toList:简称“批量推”,指向制定的一批用户推送消息; toApp:简称“群推”,指向APP符合筛选条件的所有用户推送消息,支持定速推送、定时推送,支持条件的交并补功能。ClientID...

2022-02-08 17:52:44 3917

原创 jar包在Linux和Windows环境下运行和关闭的方法

一、linux环境下启动jar包1.启动命令:nohup java -jar xxx.jar > xxx.txt &nohup: 意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行 java -jar xxx.jar : 启动jar包 '>xxx.tex' jar包运行时控制台日志重定向到文件xxx.tex中 ‘&’ 代表后台运行2.停止命令:查看进程方式一 : jps命令jps -l-q:只输出进程 ID-m:输出传入

2021-11-22 17:33:38 5944

转载 鉴权必须了解的5个兄弟:cookie、session、token、jwt、单点登录

本文你将看到: 基于 HTTP 的前端鉴权背景 cookie 为什么是最方便的存储方案,有哪些操作 cookie 的方式 session 方案是如何实现的,存在哪些问题 token 方案是如何实现的,如何进行编码和防篡改?jwt 是做什么的?refresh token 的实现和意义 session 和 token 有什么异同和优缺点 单点登录是什么?实现思路和在浏览器下的处理 从状态说起HTTP 无状态我们知道,HTTP 是无状态的。也就是

2021-11-07 12:31:51 331

原创 Jedis和RedisTemplate操作比较

Jedis是Redis官方推荐的面向Java的操作Redis的客户端。jedis实例是非线程安全的,常常通过JedisPool连接池去管理实例,在多线程情况下让每个线程有自己独立的jedis实例。RedisTemplate是SpringDataRedis中对JedisApi的高度封装。RedisTemplate是基于某个具体实现的再封装,比如说springBoot1.x时,具体实现是jedis;而到了springBoot2.x时,具体实现变成了lettuce。SpringDataRedis相对于Jed

2021-10-12 16:39:26 3027

原创 Docker中安装配置Redis

1. 安装Redis通过docker search redis和docker pull redis下载redis镜像2. 新建挂载配置文件夹因为 redis 默认配置你会发现只能够本地连接,不能进行远程访问,使用 Redis Desktop Manager连接都会报错,因此需要手动挂载 redis 配置文件新建data和conf两个文件夹,位置随意。本例使用上次安装nginx时使用的宿主机位置/docker/下eg:mkdir -p /docker/redis/datamkdi

2021-10-09 16:21:48 575

原创 Docker中安装使用Nginx并安装SSL证书

一、安装部署Nginx1.在DockerHub中搜索Nginx的镜像docker search nginx #如果不是root用户,请自行在所有命令前面加上sodu2.拉取最新版本的官方nginx镜像#如果不写TAG号,会自动追加:latest获取最新版本的docker pull nginx或者docker pull nginx:指定版本号3.创建运行nginx容器docker run --name nginx -d -p 80:80 nginx

2021-09-29 16:27:56 1700

原创 Nginx基本配置与参数说明

该篇文章暂待优化,仅供参考!#运行用户user nobody;#启动进程,通常设置成和cpu的数量相等worker_processes 1;#全局错误日志及PID文件#error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log info;#pid logs/nginx.pid;#工作模式及连接数上限events { #epoll是多路复

2021-09-22 16:50:04 92

原创 解决Centos7 Docker无法自动补全

背景:我在阿里云服务器的CentOS7下安装了Docker,突然发现按TAB键无法自动补全,在网上找到了答案:解决:CentOS最小化安装,会出现一些命令无法自动补全的情况,例如在docker start 无法自动补全 start 命令,无法自动补全docker容器名字。出现这种情况的可参考以下操作:#安装bash-completionyum install -y bash-completion#刷新文件source /usr/share/bash-completion/comple

2021-09-14 22:03:59 1258

原创 Docker命令大全

一、基础命令1. 帮助命令# 显示docker的版本信息docker version # 显示docker的系统信息 docker info # 显示帮助命令(可选填命令获取更详细的信息)docker help [command] 或者 docker [COMMAND] --help 「解释」[ ]: 可省略 COMMAND: 命令2. 镜像命令2.1查看所有镜像#查看本地主机上的所有镜像信息docker i...

2021-09-14 00:25:14 632

原创 CentOS7安装Docker(使用Docker仓库进行安装)

1.安装工具包执行如下命令:$ sudo yum install -y yum-utils #安装工具包,缺少这些依赖将无法完成结果为:备注:使用命令su并输入密码后切换到root用户,即可不写sudo。2.设置远程仓库执行如下命令:$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo结果为:3.安装Docker执行如.

2021-09-06 16:16:30 153

原创 Windows10下VMWare Workstation 16 Pro 安装CentOS 7

1. 虚拟机下载安装1.1 下载官网下载VMWare Workstation 16 Pro,我们这里选择Workstation 16 Pro for Windows下载安装即可。1.2 安装找到下载好的VMware-workstation-full-16.1.2-17966106.exe文件,双击运行,一直点击下一步即可,但建议更改下安装位置并取消体验设置。(许可证秘钥可百度)2. 新建虚拟机启动虚拟机软件。依次点击“文件”——>“新建虚拟机”。弹出“新建.

2021-09-05 22:36:30 1210

原创 Java调用第三方http接口的常用方式

1.概述在实际开发过程中,我们经常需要调用对方提供的接口或测试自己写的接口是否合适。很多项目都会封装规定好本身项目的接口规范,所以大多数需要去调用对方提供的接口或第三方接口(短信、天气等)。在Java项目中调用第三方接口的常用方式有:①通过JDK网络类Java.net.HttpURLConnection;②通过common封装好的HttpClient;③通过Apache封装好的CloseableHttpClient;④通过SpringBoot-RestTemplate;2.Jav

2021-09-02 16:49:32 89529 5

转载 java 输出流转输入流

ByteArrayOutputStream.toByteArrayByteArrayInputStreamStringWriter.toStringStringReader字符流和二进制流是javaIO的两类流,输入流和输出流是javaIO的两类流  如果你曾经使用过Java IO 编程,很可能会遇到这样一个状况,在一个类中向OutputStream里面写数据,而另一个类则从InputStream中读取这些数据。这时问题就出 现了,“如何才能把OutputStream里的数据转换为I

2021-09-01 10:07:18 4926 2

转载 Spring @Configuration和@Component的区别和联系

一、@Configuration@Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documented@Componentpublic @interface Configuration { @AliasFor( annotation = Component.class ) String value() default "";}可以看到在@Configuration注解中是

2021-08-24 23:28:39 609

原创 远程调用Feign返回IPage、INode等会直接进入FallBack

缘由:1. feign的底层为httpclient,所以进行调用返回,会经过一次json的转换2. 若不经过feign,先使用一段json字符串进行转换为对象INode,会报如下错:Cannot construct instance of org.springblade.core.tool.node.INode(no Creators, like default construct, exist)3. 是因为接口类没有构造器,所以序列化的时候报错了,同理feign调用返回的时候...

2021-08-23 17:15:42 1999 1

原创 List中删除指定元素

import java.util.ArrayList;import java.util.List;/** * @ClassName : ListTest * @Description : * @Author : THQ * @Date: 2021-08-15 17:54 * @Version V1.0 */public class ListTest { public static void main(String[] args) { //Li..

2021-08-15 18:00:25 3043

原创 Ubuntu Server 常用命令行 - Ubuntu 20.04 LTS

自从CentOS Linux被红帽收购CentOS官方宣布很快即将停止更新,取而代之的是CentOS Stream,一但切换到CentOS Stream,就意味着使用者成了RHEL版本发布前的测试员。所以推荐使用 Ubuntu Linux 取而代之,今后所部署的服务器我也会尽可能使用Ubuntu,抽空整理一些 Ubuntu 系统常用命令供大家参考。###网络```bash# 从所有接口获取IP地址networkctl status# 列出主机所有IP地址hostname -I# .

2021-08-15 17:35:42 1947

原创 Epic安装新Epic Online Services内部模块报错EOS-ERR-1603解决

有部分用户安装Epic后,在设置里面会提醒我们可安装一个新的Epic Online Services内部模块,如下图如果点击安装报错EOS-ERR-1603时,我们可以在C:\Program Files (x86)\下面创建一个新文件夹Epic Games,最后重新安装即可成功!...

2021-08-08 13:47:55 13228

转载 处理CORS(跨域)

在开发REST应用时,很多时候,是通过页面的JavaScript和后端的REST API交互。在JavaScript与REST交互的时候,有很多安全限制。默认情况下,浏览器按同源策略放行JavaScript调用API,即: 如果A站在域名a.com页面的JavaScript调用A站自己的API时,没有问题; 如果A站在域名a.com页面的JavaScript调用B站b.com的API时,将被浏览器拒绝访问,因为不满足同源策略。 同源要求域名要完全相同(a.com和www.a.com不

2021-08-06 13:55:57 272

转载 Spring之使用条件装配

开发应用程序时,我们会使用开发环境,例如,使用内存数据库以便快速启动。而运行在生产环境时,我们会使用生产环境,例如,使用MySQL数据库。如果应用程序可以根据自身的环境做一些适配,无疑会更加灵活。Spring为应用程序准备了Profile这一概念,用来表示不同的环境。例如,我们分别定义开发、测试和生产这3个环境:native test production创建某个Bean时,Spring容器可以根据注解@Profile来决定是否创建。例如,以下配置:@Configuration@Com

2021-08-04 16:35:32 270

转载 Spring之注入配置

在开发应用程序时,经常需要读取配置文件。最常用的配置方法是以key=value的形式写在.properties文件中。例如,MailService根据配置的app.zone=Asia/Shanghai来决定使用哪个时区。要读取配置文件,我们可以使用Resource来读取位于classpath下的一个app.properties文件。但是,这样仍然比较繁琐。Spring容器还提供了一个更简单的@PropertySource来自动读取配置文件。我们只需要在@Configuration配置类上再添加一个注

2021-08-04 16:30:38 612

转载 Spring之Resource(注入资源文件)

在Java程序中,我们经常会读取配置文件、资源文件等。使用Spring容器时,我们也可以把“文件”注入进来,方便程序读取。例如,AppService需要读取logo.txt这个文件,通常情况下,我们需要写很多繁琐的代码,主要是为了定位文件,打开InputStream。Spring提供了一个org.springframework.core.io.Resource(注意不是javax.annotation.Resource),它可以像String、int一样使用@Value注入:@Componen

2021-08-04 16:08:11 1542

转载 子网掩码255.255.0.0与255.255.255.0的区别

先介绍子网掩码:子网掩码,是一种用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分。(问题:什么是网络地址和主机地址?)网络地址与主机地址:要想理解什么是子网掩码,就不能不了解IP地址的构成。互联网是由许多小型网络构成的,每个网络上都有许多主机,这样便构成了一个有层次的结构。IP地址在设计时就考虑到地址分配的层次特点,将每个IP地址都分割成网络号和

2021-08-02 14:09:17 14725

转载 @Scope(“prototype“)的正确用法——解决Bean的多例问题

1. 问题,Spring管理的某个Bean需要使用多例  在使用了Spring的web工程中,除非特殊情况,我们都会选择使用Spring的IOC功能来管理Bean,而不是用到时去new一个。Spring管理的Bean默认是单例的(即Spring创建好Bean,需要时就拿来用,而不是每次用到时都去new,又快性能又好),但有时候单例并不满足要求(比如Bean中不全是方法,有成员,使用单例会有线程安全问题,可以搜索线程安全与线程不安全的相关文章),你上网可以很容易找到解决办法,即使用@Scope("prot

2021-07-27 17:28:57 2572

原创 SpringBoot之定时任务详解

目录序言一、静态:基于注解二、动态:基于接口三、多线程定时任务序言使用SpringBoot创建定时任务非常简单,目前主要有以下三种创建方式:一、基于注解(@Scheduled) 二、基于接口(SchedulingConfigurer),实际使用中我们往往想从数据库中读取指定时间来动态执行定时任务。 三、基于注解设定多线程定时任务一、静态:基于注解基于注解@Scheduled实现,默认为单线程,开启多个任务时,任务的执行时机会受上一个任务执行时间的影响。最基本的配

2021-07-27 15:20:37 929

转载 Spring之@Async注解(异步调用)

本文讲述@Async注解,在Spring体系中的应用。本文仅说明@Async注解的应用规则,对于原理,调用逻辑,源码分析,暂不介绍。对于异步方法调用,从Spring3开始提供了@Async注解,该注解可以被标注在方法上,以便异步地调用该方法。调用者将在调用时立即返回,方法的实际执行将提交给Spring TaskExecutor的任务中,由指定的线程池中的线程执行。 在项目应用中,@Async调用线程池,推荐使用自定义线程池的模式。自定义线程池常用方案:重新实现接口AsyncConfigurer。..

2021-07-27 11:41:21 1307

原创 @PostConstruct注解和@PreDestroy注解(初始化和销毁)

@PostConstruct基本:@PostConstruct注解不是Spring提供的。是Java自己的注解。Java中该注解的说明:@PostConstruct该注解被用来修饰一个非静态的void()方法。被@PostConstruct修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器执行一次。PostConstruct在构造函数之后执行,init()方法之前执行。通常我们会是在Spring框架中使用到@PostConstruct注解 该注解的方法在整个Bean初始化中的执行

2021-07-21 23:49:25 770

转载 SpringBoot的@Configuration扫盲

@Configuration注解标识的类中声明了1个或者多个@Bean方法,Spring容器可以使用这些方法来注入Bean,比如:@Configurationpublic class AppConfig { //这个方法就向Spring容器注入了一个类型是MyBean名字是myBean的Bean @Bean public MyBean myBean() { // instantiate, configure and return bean ... }}@Confi

2021-07-21 21:44:34 1845

空空如也

空空如也

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

TA关注的人

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