自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(73)
  • 资源 (5)
  • 收藏
  • 关注

原创 Redis is configured to save RDB snapshots, but it is currently not able to persist on disk

服务器上出现问题,查看日志看到报错:Redis is configured to save RDB snapshots, but it is currently not able to persist on disk,提示redis的持久化失败。这个问题原因,如果之前一直没问题,一段时间后出现,那大概率就是磁盘空间满了!

2023-12-13 17:39:25 497

原创 logback使用SiftingAppender、MDC实现日志文件分离,动态指定文件

一、前言 前期接触到日志的基本配置,能够实现的是大概就是按日志级别输出,日志文件按天、大小等生成,但有的时候如果把所有日志都放在一个文件里,可能在查看日志时非常不方便,就好比如我想将每个用户的相关操作都保存在对应的日志文件中,这种我们就需要SiftingAppender。二、SiftingAppender 顾名思义,SiftingAppender能够在运行中指定的变量,对日志事件进行筛选,由不同的appender去写日志。在logback.xml中的基本格式:<?xml version="1

2021-12-27 09:48:14 3416 4

原创 springboot项目打包war

1、指定打包方式 <packaging>war</packaging>2、dependency <!--剔除自带的tomcat--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId

2021-10-25 10:56:52 202

原创 java调用bat脚本报无法找到启动类异常

有的时候需要在程序中调用本地的脚本文件,脚本中是启动另外一个java程序,通常的处理方式就是如下: String cmd = "cmd.exe /c start shutdown.bat"; Process ps = Runtime.getRuntime().exec(cmd);那可能在测试的时候调用正常,但是打包后出现执行脚本“无法找到xxx启动类”,那正确的写法是在exec方法中还要指定脚本的文件的绝对路径参数。假如上面脚本的路径是:d://test//shutdown.bat, String

2021-10-14 17:09:35 505

原创 quartz启动报错——Active Scheduler of name ‘XXX‘ already registered in Quartz SchedulerRepository

1、问题  在springboot整合quartz时,启动一直报错,控制台日志提示说是某个Scheduler重复创建了,日志如下:Caused by: java.lang.IllegalStateException: Active Scheduler of name 'MyScheduler' already registered in Quartz SchedulerRepository. Cannot create a new Spring-managed Scheduler of the same

2021-08-10 16:49:58 2080

原创 ReentrantLock源码浅析

文章目录一、前言二、源码介绍1、基本构造2、加锁与解锁2.1、加锁2.1.1、公平锁2.1.2、非公平锁2.2、解锁三、小结一、前言  在此前《ReentrantLock基本介绍》这篇博客中已经介绍了ReentrantLock的基本使用,那在本篇博客中将会简要介绍下其内部的主要源码。前提:对AbstractQueuedSynchronizer(简称AQS)有了解,不清楚的可以先去看看《AbstractQueuedSynchronizer源码——基本认识》二、源码介绍1、基本构造  在上面两

2021-08-06 15:46:51 93

原创 ReentrantLock基本介绍

文章目录一、ReentrantLock是什么?二、基本使用1、可重入锁2、非公平锁与公平锁三、小结一、ReentrantLock是什么?  jdk1.5新增了并发包,里面包含Lock接口,与synchronized关键字一样能实现同步功能,但相比synchronized,Lock更加灵活,可以手动获取、释放锁,而ReentrantLock就是Lock的一个实现类。二、基本使用1、可重入锁  ReentrantLock从字面意思翻译就是可重入锁,那什么是可重入锁?简单来说就是某个线程获取改锁后,可

2021-08-05 14:08:23 1069

原创 CountDownLatch源码简要分析

文章目录一、前言二、源码2.1 构造方法2.2 Sync类2.3 await2.4 countDown三、小结一、前言  前面已经通过小例子介绍了CountDownLatch的基本使用场景,在本篇博客中我们简要的看下CountDownLatch的源码,看看是如何实现的,前提是必须先要知道AQS的大体流程,因为CountDownLatch是基于AQS实现的,不清楚的可以先看《AbstractQueuedSynchronizer源码——基本认识》。二、源码  整体上CountDownLatch的源码很

2021-08-03 11:06:52 157

原创 CountDownLatch简单介绍

文章目录一、CountDownLatch是什么?二、使用示例1、场景12、场景2三、小结一、CountDownLatch是什么?  CountDownLatch是一个同步工具类,在java.util.cucurrent包中,是JUC编程中较为常用的一个工具类,允许一个或多个线程一直等待,直到其他线程运行完成后再执行。  它的的实现简单来说是通过一个计数器,初始化的时候给计时器一个指定值,然后在子线程中当执行完规定的逻辑后,计数器会进行减1操作,当计数器为0时,那么在阻塞等待的线程则会被唤醒恢复执行。

2021-07-30 14:49:54 690

原创 AbstractQueuedSynchronizer源码——基本认识

文章目录前言一、AbstractQueuedSynchronizer是什么?二、主体构造三、源码1、队列节点2、独占模式2.1 acquire(int arg)前言最近比较闲,就打算阅读学习一下java并发相关的内容,主要平常自己涉及不到高并发的业务,所以这一块也是短板,本篇文章主要是介绍AbstractQueuedSynchronizer(简称AQS)的独占模式和共享模式下的获取、释放资源的操作过程,有什么错误的地方也欢迎大家指出。一、AbstractQueuedSynchronizer是

2021-07-29 16:56:49 156

原创 Java线程的虚假唤醒

虚假唤醒这个其实也算不上什么高深的点,简单来说就是**这个线程醒来时候干了不该干的事~**先来看个示例,然后再来分析下产生的原因。小明放暑假了,每天的事情就是吃饭和睡觉,我们就把这个小明当做资源类。...

2021-07-12 13:17:54 202 1

原创 RSA+AES混合加密-JavaWeb

一、前言RSA与AES加密的详细介绍这里就不写了,网上很多博客,这里就只是简单说明一下:AES:属于对称加密,通过一个公共的秘钥,实现加密解密;RSA:非对称加密,需要生成一个公钥、一个私钥,这两个秘钥使用时,一个用来加密时,那么就需要另一个秘钥进行解密,公钥一般提供给客户端。二、整体构思RSA+AES的混合加密时,AES用于给传输的数据加密,然后通过RSA给AES的秘钥加密,所以接收到数据后,就需要先解密得到AES的秘钥,然后通过AES秘钥再去解密得到数据。下面简单说下demo中加密解密的

2021-05-24 15:49:19 6534

原创 随笔

终于忙完一阶段,有时间写写博客了。

2021-05-06 09:45:18 82

原创 Html引入本地Vue和Element UI

有的时候可能需要通过本地引入的方式导入vue以及一些其他框架,我这里引入的是Element UI,首先先把对应的文件下载下来:1、下载(1)vue: https://vuejs.org/v2/guide/installation.html(2)element下载element.js:https://unpkg.com/browse/element-ui@2.14.1/lib/index.js,自己保存下,文件名自己定义;element.css:https://unpkg.com/browse/

2021-01-11 16:55:07 4552 1

原创 Hutool上传文本和文件

hutool相对来说还是个不错的工具包,相比自己来写或者使用一些其他已有的工具包要简便很多,这里简单记录下利用hutool同时上传文本和文件。1、包含单个文件 HttpResponse response = HttpRequest.post(url) .form("param", "test") .form("key", new File("C:\\Users\\12043\\Desktop\\cat.jpeg"))

2020-12-11 13:46:44 22270 14

原创 SpringBoot集成Spring Security(5)——defaultSuccessUrl与successForwardUrl区别

一、前言        前面几篇博客都是结合源码简单介绍了下Spring Security的一点基本内容,今篇换换口味,简单看看一个关于登录成功跳转路径设置的问题。二、defaultSuccessUrl与successForwardUrl1、successForwardUrl在SecurityConfig类中我们设置如下:@Overrideprotected void configure(HttpSecurity h

2020-11-27 15:54:10 4615 6

原创 SpringBoot集成Spring Security(4)—— 自动登录2

一、前言上一篇介绍了关于自动登录无持久化方式的内容,通过源码我们知道这种方式的cookie中包含了用户名、密码,这个从安全性上讲是存在风险的,那还有另一种方式就是通过数据库持久化cookie所包含的信息,并且是跟用户名、密码不相关的内容。二、实现Spring Security中已经定义好了对于数据库操作的类JdbcTokenRepositoryImpl,所以不需要我们自己定义了,但是存储数据的表默认是没有的需要创建。那在原有的基础上在SecurityConfig类中要增加一些内容:// 导入数据源

2020-11-26 10:47:24 224

原创 SpringBoot集成Spring Security(3)—— 自动登录1

一、前言本篇文章来看下利用Spring Security实现自动登录功能,并且简单了解其内部细节。Spring Security自动登录实现本质其实也是利用cookie,那关于cookie的shijiuhua

2020-11-25 11:39:36 495

原创 SpringBoot集成Spring Security(2)——密码校验

一、前言在上一篇《SpringBoot集成Spring Security(1)——登录认证》中已经做了Spring Security的基本入门,可以登录和做角色校验,这其中有一点比较好奇的就是密码校对这块。二、简要分析下面通过源码简单的来了解下Spring Security的密码校对这块,在上一篇博客中代码示例里的SecurityConfig里面,我们自己配置了一个密码编码器,然后在检验过程中就会获取改密码编码器,拿到数据库中该用户的密码和你前端传进来的密码,调用matches方法进行校验。

2020-11-23 09:50:49 2597

原创 SpringBoot集成Spring Security(1)——登录认证

一、前言权限认证框架最常见的除了Shiro,另一个就是Spring Security,相比Shiro而言Spring Security学习难度较大,这里我通过博客记录下自己学习Spring Security的历程。如果您跟随博客学习,请尽量保持环境一致,否则掉坑了不负责哈O(∩_∩)O~环境:SpringBoot2.3.6.RELEASE,Spring Security5+二、环境依赖这里使用的SpringBoot是2.3.6,Spring Security默认是5.3.5<depen

2020-11-18 14:47:23 1730 5

原创 centos8安装docker

不多说废话,步骤如下:1.安装依赖sudo yum install -y yum-utils device-mapper-persistent-data lvm22.设置国内镜像sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo3.安装yum install -y docker-ce PS:centos8安装时,报错package doc

2020-11-12 10:26:25 91

原创 layui多文件上传-删除文件

layui的文件上传功能相对来说做的不是很完善,很多需求可能需要自己去实现,就像常见的文件手动上传时,对于选中的文件进行删除重新选择,这个就需要自己去现实,这里用上传图片做一个简单示例。HTML代码:<div class="layui-card"> <div class="layui-card-header">票据照片</div> <div class="layui-card-body"> <div class="la

2020-08-31 13:24:03 3918 7

原创 ssm报错:SimpleMetadataReader.<init>(SimpleMetadataReader.java:52)

在更新一个老的服务时,报了如下错误:环境:jdk1.8,spring3.2java.lang.IllegalArgumentException at org.springframework.asm.ClassReader.<init>(Unknown Source) at org.springframework.asm.ClassReader.<init>(Unknown Source) at org.springframework

2020-08-21 15:34:33 474

原创 Mybatis级联查询报错:returned more than one row, where no more than one was expected

在mybatis中使用级连查询时,有个地方需要注意:一对一:association映射类型指定时使用javaType<association property="businessInfo" select="com.easyaccount.dao.BusinessInfoMapper.selectByBillId" column="bill_id" javaType="com.easyaccount.model.BusinessInfo"></as

2020-08-19 14:21:59 1204 2

原创 自定义拦截器不生效

        很久没有直接用ssm写东西了,今天就碰到个问题,自定义的拦截器死活不生效,在网上找了很多文章,都是说<mvc:annotation-driven/>这个注解跟自定义拦截器冲突,说去掉这个注解就可以了。当然去掉是可解决问题,但是该注解会帮我们注入MVC相关的注解,去掉了最基本的@Controller都会失效,又不可能自己一个个去配置这些注解。那不生效的原因可能很多,我自己的问题是在于我把拦截器的配置写

2020-08-14 14:36:52 1695

原创 JDK1.8中HashMap源码简要分析

        HashMap不论是在工作还是面试中是都会遇见的,并且本身也是非常重要的,下面我们来看看其内部的真容。一、整体轮廓        自己去看这类数据结构时,不论是map、set、list,首先去了解他们的存储的结构,自身的一些属性,相应的常用方法。那我们这里也是一样,首先把这三个方面过一眼。1、数据存储方式 &nbsp

2020-07-30 20:41:39 194

原创 Docker安装RocketMQ

1、创建一个本地文件夹在usr/local下,创建rktmq文件夹,当做rocketmq的本地映射目录。(位置或者文件名可自行定义)2、安装 Namesrv拉取镜像:$ docker pull rocketmqinc/rocketmq:4.4.0启动namesrv:$ docker run -d -p 9876:9876 -v {RmHome}/data/namesrv/logs:...

2020-03-09 17:06:19 2420 17

原创 图片服务器Zimg

若一个项目中图片的资源较多,都会有专门的图片服务器来存储图片,可以去观察一些大的网站上图片的链接都是有专门的服务器,这样可以很好地提高性能。图片服务器解决方案很多,通过花钱的云厂商提供的存储服务、vsftp、FastDFS等,这里介绍一个开源项目——zimg。zimg是图像存储和处理服务器。您可以使用URL参数从zimg获得压缩和缩放的图像。zimg的并发I / O,分布式存储和及时处理能...

2020-03-04 13:59:04 4693 1

原创 微信小程序订阅消息

消息能力是小程序能力中的重要组成,以便实现服务的闭环和更优的体验。此前的小程序模板消息接口于2020年1月10日下线,2.10.0 版本开始,开发版和体验版小程序将禁止使用模板消息 fomrId。开发者可使用订阅消息功能。订阅消息特点:订阅消息推送位置:服务通知订阅消息下发条件:用户自主订阅订阅消息卡片跳转能力:点击查看详情可跳转至该小程序的页面订阅消息的使用主要以下几个步骤:获取...

2020-03-02 15:19:21 6733 11

原创 微信小程序获取公众号文章列表及显示文章

微信小程序中如何打开公众号中的文章,步骤相对来说不麻烦。1、公众号设置小程序若要获取公众号的素材,公众号需要做一些设置。1.1 绑定小程序公众号需要绑定目标小程序,否则无法打开公众号的文章。在公众号管理界面,点击小程序管理 --> 关联小程序输入小程序的AppID搜索,绑定即可。1.2 公众号开发者功能配置(1) 在公众号管理界面,点击开发模块中的基本配置选项。(2)...

2020-02-29 18:20:50 14072 13

原创 Docker安装RabbitMQ

1、拉取镜像后面携带management表示会有管理界面$ docker pull rabbitmq:management2、创建启动RabbitMQ容器$ docker run -d --name myrabbit -p 5672:5672 -p 15672:15672 -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=ad...

2020-02-22 14:39:16 152

原创 Ubuntu的Vi方向键出现乱码

新装的系统,只装了vi未装vim,在使用vi时方向键出现问题都是字母,如下可解决: cp /etc/vim/vimrc ~/.vimrc 或者:sudo apt-get install vim重启终端即可。...

2020-02-21 10:49:55 2071

原创 Ubuntu安装Docker

1、环境Linux版本:Ubuntu 16.04 下载2、步骤添加/更新库$ sudo apt-get update # 先更新一下软件源库信息$ sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ software-properties-common添加dock...

2020-02-20 17:08:37 351 2

原创 spring+mybatis多数据源配置及动态切换

1、配置1.1 jdbc.properties#table [hero_pos]jdbc1.driverClassName=com.mysql.jdbc.Driverjdbc1.url=jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8jdbc1.username=rootjdbc1.password=123456#ta...

2020-02-15 20:37:19 376

原创 windows下ftp密码设置问题

网上多数文章在介绍FTP安装时,都将认证设置为匿名,后面若想增加用户名、密码认证则需要注意,如果当前你的电脑设置了开机密码,那么FTP账户的密码必须和你开机密码一致,否则提示密码无效。...

2020-02-06 12:41:45 1909

原创 ant中配置文件名称的问题

        碰到一个问题记录一下,昨天在eclipse中使用ant编译项目时,右键单击ant的xml配置文件,run as中一直没有ant build选项,无法编译文件,,但是在前一段时间使用时是没问题的,后来没办法就下载了ant命令行进行编译,同样无法编译,但是通过报错知道了原因,就是配置文件的名字必须是buil...

2019-12-31 09:24:55 262 1

原创 idea创建maven的web工程

1、2、3、4、点击finish5、等待其构建(可能需要一点时间)点击Enable Auto-Import,表示后续添加依赖后自动导入工程控制台显示如下表示构建成功6、 工程目录可能会有一些不同7、配置工程7.1 在main目录下创建两个目录(有则无需创建)java:存放源码resources:存放资源文件(例如一些配置文件)7.2 设置两个目录的类型...

2019-11-04 15:06:42 232

原创 idea创建普通web工程

1、2.创建完后目录结构3.在web/WEB-INF下创建两个文件夹lib,用于存放第三方jar包。4.配置libFile -> Project Structure (快捷键:Ctrl + Shift + Alt + S) -> 选择Module :选择Dependencies -> 将Module SDK选择为1.7 -> 点击右边的“+”号 ...

2019-11-04 14:59:16 301

原创 线程池ThreadPoolExecutor原理

在并发场景下,线程池出镜率是比较高的,线程池的使用可以给我们带来一些好处:降低资源消耗通过对线程的重复利用避免了频繁的创建和销毁线程所带来的的开销。提高相应速度当有任务产生时,可以直接使用现有的空闲线程,无需去创建。提高对线程的管理并发情况下往往会有很多线程运行,但线程不能无限度的创建运行,因为线程也是需要占用资源,过多的线程导致系统可用资源急剧下降,降低系统稳定性。线程池的使用可以...

2019-08-16 10:58:24 255

原创 Springboot错误页面和错误信息定制

SpringBoot2.1.4错误处理机制前面一片已经介绍了springboot错误处理的机制,其实从整个分析过程中我们已经大概知道如何定制了。1、错误页面自定义springboot有个默认的错误页面,但是开发时错误页面肯定是自己定义的。那该如何定义?在DefaultErrorViewResolver类中有下面几个方法,private ModelAndView resolve(Strin...

2019-05-10 16:11:00 5290 1

rsa+aes.zip

rsa+aes.zip

2021-05-24

openoffice_v4.5.0

openoffice_v4.5.0

2020-12-18

微信订阅消息demo1.zip

微信订阅消息demo1.zip

2020-04-20

svn服务端安装包

Setup-Subversion-1.8.17.msi

2018-12-12

Volley框架ImageLoader

Volley框架ImageLoader的使用

2016-12-02

空空如也

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

TA关注的人

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