自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SpringBoot启动图像设置

看别人SpringBoot项目中经常自定义启动图像,闲来无事,网上找了几个生成banner.txt的网址1.个人比较喜欢这个网站,看着舒服https://www.bootschool.net/ascii2.http://patorjk.com/software/taag/#p=display&f=Graffiti&t=Type Something 3.http://www....

2019-06-15 16:15:56 6092

原创 SpringSecurity灵魂剖析

SpringSecurity原理剖析一.前言​ 在SpringBoot大行其道的时代里,安全认证也被加入Spring家族中。SpringSecurity和Spring做了很好的集成,也是倍受欢迎。但是在使用SpringSecurity的时候会很苦恼,只是按照网上的帖子配置一下,但是具体的运行流程与原理很多人却是很蒙蔽。具体的原理也是一知半解的,源码看不懂,很多人在学习的道路上走着走着就不见了… 本人也苦于SpringSecurity原理的困扰很久,经过了九九八十一天的刻苦钻研,得到一些领悟,特此记

2020-11-10 19:07:40 157

原创 归纳之_观察者模式_详细总结

设计模式之—观察者模式(Observer Pattern)一. 定义及应用范围​ 在对象之间定义了一对多的依赖,这样一来,一个对象的状态改变了,依赖它的对象会收到通知并自动更新。其实就是发布订阅模式,发布者发布消息,订阅者订阅消息。订阅了就能收到消息,没订阅就收不到消息。​ 观察者模式还有其他的一些称谓,比如: 发布-订阅模式,模型-视图模式,源-监听器模式,从属模式。其实都是说的是一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个对象在状态发生变化时,会通知所

2020-10-10 18:02:42 231

原创 通过 jstack 排查服务器CPU飙升到 146%,代码中存在死循环

一.问题现象 线上服务运行了5天,服务器的CPU使用率突然暴增到146%,顿时感觉情况不是很妙 通过top 命令查看服务器运行情况如下: 发现这个java程序的CPU使用率很高。二.解决办法执行top -Hp pid命令获取到当前进程中所有在执行的线程情况,再按大写的P进行排序,找到CPU使用率最高的线程 pid将这个线程的pid输出为16进制 printf "%x\n" 1546 #输出的16进制结果 60a3.执行jstack命令查看线程执行情

2020-09-28 18:49:05 269

原创 Shell脚本语法总结

Shell脚本语法总结一. Shell参数传递$# 获取传递参数的个数$* 以单个字符串形式显示所有传入的参数@与@ 与@与*的意思一样的,输出所有传入的参数,只不过$@会返回每个参数$$ 脚本运行的当前进程ID$? 获取最后退出的值,如果有return 则返回return的值,如果没有return 返回0 或 1(异常)二.算术运算符加法 + expr $a + $b减法 - expr $a - $b乘法 * expr $a * $b除法 / expr $a / $b求

2020-09-28 16:56:08 497

原创 Docker镜像下载太慢解决办法

一、配置阿里Docker镜像仓库在/etc/docker目录下编辑,daemon.json文件,将阿里镜像配置上。如果没有daemon.json文件的话,touch daemon.json新建一个[root@localhost docker]# cd /etc/docker/[root@localhost docker]# ll总用量 8-rw-r--r--. 1 root root 65 8月 30 17:03 daemon.json-rw-------. 1 root root 24

2020-08-30 17:11:11 1434 1

原创 记录SpringEL表达式中的 ${}和#{}的区别

一、${}${} 用于加载外部文件指定的Key值,常用在xml中,@Value(" ${key_value}")二、#{}#{} 功能比 ${} 功能更强大,强调的是把内容赋值给属性,示例:表示常量: #{‘1’} ,#{’ This is a Constant Str’}使用java代码new/instance of: 此方法只能是java.lang 下的类才可以省略包名 #{“new Spring(‘Hello World’)”}使用T(Type): 使用“T(Type)”来表示java.

2020-08-27 11:56:39 3668

原创 SpringBoot集成RabbitMQ,设置手动confirm,和消费确认,死信队列

前言:进来的看官,默认你对RabbitMQ的原理比较懂了啊,不懂的先学习一下再来。一、引入rabbitmq依赖包 // rabbitmq依赖包 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </dep

2020-08-21 18:53:59 3607 2

原创 阿里云Centos7.5 被蠕虫病毒挖矿,kdevtmpfsi进程导致CPU使用率爆棚

一、问题操作系统: 阿里云服务器 Centos7.5使用top命令查看进程,发现有一个kdevtmpfsi Command进程的CPU占用很大。这个进程并不是自己的一个服务。使用Kill命令,杀死这个进程之后,再过10几秒CPU进程中又出现了该进程。二、解决办法查看定时任务列表# 查看定时任务列表crontabe -l# 会发现里边有一个恶心的定时任务删除定时任务crontabe -e#删除掉定时任务,wq保存退出查看kdevtmpfsi 进程信息ps -e

2020-08-20 17:21:26 862

原创 阿里云Centos7打开防火墙报错 Failed to start firewalld.service: Unit is masked的解决办法

一、问题背景操作系统: 阿里云 Centos7 操作系统操作如下:# 打开防火墙报错systemctl start firewalld#开启失败,报错提示信息Failed to start firewalld.service: Unit is masked二、问题原因和解决办法防火墙被锁定了,需要解锁才可打开。#执行解锁命令systemctl unmask firewalld#可看到 ,解除成功。可正常的开启防火墙了#Removed symlink /etc/systemd/s

2020-08-20 17:05:55 889

原创 Chrome浏览器安装octotree-chrome插件

一、octotree-chrome原码地址 点我二、进入octotree 官网 https://www.octotree.io/三、选择 Octotree for Chrome四、安装完后可见五、使用就是这么简单

2020-07-28 15:23:30 215

原创 Dockerfile:Dockerfile构建nginx+nginx-rtmp-module+ffmpeg视频直播服务镜像

前言简介:在搭建视频流直播服务时需要用到ffmpeg、nginx、nginx-rtmp-module,从而实现推流和拉流。但传统的安装方式需要安装各种依赖,受服务器系统的影响,安装繁琐。在此编写Dockerfile用于构建一个docker镜像,实现跨平台一键式安装。不废话了,直接上Dockerfiel配置附带docker仓库地址 点我 https://hub.docker.commkdi...

2020-01-19 14:04:05 1487 3

原创 Centos7 配置密钥登录,关闭密码登录

一、问题:公网上的服务器用密码登录时经常看到被攻击.Last failed login: Tue Dec 12 07:55:36 CST 2017 from 219.146.144.254 on ssh:nottyThere were 14011 failed login attempts since the last successful login.Last login: Mon De...

2020-01-16 10:11:39 2547

原创 记录使用Spring MultipartFile上传文件超过最大限制时,无法捕获MaxUploadSizeExceededException异常的问题

一:MaxUploadSizeExceededException 问题SpringBoot项目配置了配置了上传文件的最大值限制,当上传的文件超过最大值的限制时会抛出MaxUploadSizeExceededException异常,如下:2020-01-07 09:40:31 [http-nio-8081-exec-1] [ERROR] o.a.c.c.C.[.[.[/video].[dispa...

2020-01-07 10:38:17 4053 7

原创 SpringBoot集成Redis,实现数据缓存

前言 传统的业务中,数据的查询是直接从数据库中查询,随着业务发展,用户的访问量会增加,这个时候再继续从数据库中查询 数据,系统IO开销就会很大,给系统造成压力,严重的话会造成宕机,系统崩溃等。为了解决这种问题,缓存机制就诞生了。 用户访问时就用户不经常修改的数据放到缓存中,下次请求时直接从缓存中取出,而是从缓存中取数据,这样就大大减少了 数据库访问的压力。以下介绍下在SpringB...

2020-01-06 09:35:42 147

原创 高德、百度地图瓦片下载地址汇总和瓦片下载

网上各种下载瓦片地图的软件都是收费或者限制下载张数的,在此自己总结通过java代码实现下载高德、百度瓦片地址,搭建属于自己的离线地图。

2019-12-06 16:00:34 20134 4

原创 Centos设置防火墙、开发端口

一.查看对外开放的端口1.查询当前系统已开放的端口 netstat -anp2.查询指定端口是否已开 firewall-cmd --query-port=8080/tcp提示 yes,表示开启;no表示未开启。二.查看防火墙状态1.查看防火墙状态 systemctl status firewalld2.开启防火墙 systemctl start firewalld或servi...

2019-11-28 15:43:27 194

原创 Linux下安装Mongo以及创建用户和授权

一.下载安装包前往官网下载Linux版mongo的安装包,根据自己Linux操作系统选包mongo官网地址将 mongodb-linux-x86_64-3.0.6.tgz 包上传到服务器二. 解压tgz包tar -zxvf mongodb-linux-x86_64-3.0.6.tgz移动到/user/local/mongo目录下:mv mongodb-linux-x86_64-3.0...

2019-09-28 14:28:14 550 2

转载 转载 Java表达式引擎fel/groovy/expression4j/java脚本引擎的性能对此

转载:http://www.findsrc.com/java/detail/8664产品中需要用到数学表达式,表达式不复杂,但是对性能要求比较高。选用了一些常用的表达式引擎计算方案,包含:java脚本引擎(javax/script)、groovy脚本引擎、Expression4j、Fel表达式引擎。其中java脚本引擎使用了解释执行和编译执行两种方式、groovy脚本只采用了编译执行(解释执行...

2019-08-21 17:52:16 1576

原创 记录Linux shell脚步中CRLF和LF问题

1.使用工具:nodePad++2.问题:用nodePad++写完shell脚步后在执行机执行时,各种报错,未预期的符合,未正常的结尾等等.....3.查找问题原因: (1) cat -v test.sh ,查看脚步内容,发现回车的地方有^M;原来是换行符的问题 (2)用nodePad++,打开文本, 中文版查看方式: 视图-&g...

2019-06-21 09:52:51 7220

原创 @MappedSupperclass、@EntityListeners注解注意事项

1. @MappedSupperclass注解(1) 该注解标注在类上,用来标识父类;(2) 该注解标识的类不能映射到数据库,被标识的类的属性必须通过子类来映射;(3) 该注解标识了类之后,不能再有@Entity和@Table注解标识该类(4) 标识有该注解的类,通常属性上用以下注解@Id @GeneratedVale(strategy=GenerationType.IDENTITY) ...

2019-06-14 15:41:18 2207

转载 Ant路径匹配规则AntPathMatcher的注意事项

引用地址: 0.AntPathMatcher前言:(1)SpringMVC的路径匹配规则是依照Ant的来的,实际上不只是SpringMVC,整个Spring框架的路径解析都是按照Ant的风格来的;(2)AntPathMatcher不仅可以匹配Spring的@RequestMapping路径,也可以用来匹配各种字符串,包括文件路径等。1.基本规则:(1)? 匹配一个字符(除过操作系统默认的...

2019-05-29 09:57:36 4104

原创 MySQL的安装以及初始化密码修改

#代码开始[Client]#设置3306端口port = 3306 [mysqld]#设置3306端口port = 3306# 设置mysql的安装目录basedir=D:\install\mysql-5.7.26-winx64# 设置mysql数据库的数据的存放目录datadir=D:\install\mysql-5.7.26-winx64\data# 允许最大连接数max_connections=200# 服务端使用的字符集默认为8比特编码的latin1字符集charact

2019-05-29 09:27:27 171

空空如也

空空如也

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

TA关注的人

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