自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

啦啦啦啦啦啦博客

一个默默学习的小程序员

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

原创 Windows服务器部署项目自启动

win+R 输入 services.msc 即可查看。

2023-06-28 16:34:20 292

原创 Git使用-Git stash使用

git使用-----------------------------------

2023-03-23 15:51:06 207

原创 Mybatis-plus3.5版本查询支持枚举返回

mybatis-plus使用

2023-03-03 17:28:40 1013

原创 记录锁,间隙锁,插入意向锁,临键锁兼容关系

mysql锁

2023-02-17 13:50:46 2048

原创 @Configuration 和 @Component 的区别

@Configuration 和 @Component

2023-02-14 09:51:22 411

原创 使用ffmpeg进行视频保存可以使用 ffmpeg -hwaccels是否存在硬件加速

ffmpeg

2023-02-06 14:55:44 350

原创 postgresql行锁问题

postgresql

2023-01-31 14:38:42 205

原创 统计分析工具

前端

2023-01-30 10:32:14 596

原创 vue中子组件的事件阻止父组件的事件的触发(阻止冒泡事件)

前端相关

2023-01-30 10:24:39 2600

转载 java线上项目排查,Arthas简单上手

工具

2023-01-29 19:10:14 657

原创 javafx中gif 内存优化

优化

2023-01-29 19:05:45 816 1

原创 提取word中的标题大纲

word工具类

2023-01-29 18:58:23 2447

原创 大屏加载速度优化--突破chrome 6个请求线程限制

优化

2023-01-29 18:53:16 7211 1

原创 邮件发送阻塞问题

异步

2023-01-29 18:46:51 367

原创 Spring中Controlle单例和ThreadLocal的使用

结论:controller默认是单例的,不要使用非静态的成员变量,否则会发生数据逻辑混乱。 正因为单例所以不是线程安全的。我们下面来简单的验证下:package com.riemann.springbootdemo.controller;import org.springframework.context.annotation.Scope;import org.springframework.stereotype.Controller;import org.springframework.

2022-01-23 09:45:36 2417

原创 数据库索引的原理,为什么要用 B+树,为什么不用二叉树

可以从几个维度去看这个问题,查询是否够快,效率是否稳定,存储数据多少,以及查找磁盘次数,为什么不是二叉树,为什么不是平衡二叉树,为什么不是 B 树,而偏偏是 B+树呢?为什么不是一般二叉树?如果二叉树特殊化为一个链表,相当于全表扫描。平衡二叉树相比于二叉查找树来说,查找效率更稳定,总体的查找速度也更快。为什么不是平衡二叉树呢?我们知道,在内存比在磁盘的数据,查询效率快得多。如果树这种数据结构作为索引,那我们每查找一次数据就需要从磁盘中读取一个节点,也就是我们说的一个磁盘块,但是平衡二叉树可

2022-01-17 14:22:03 1164 1

原创 Java8 CompletableFuture supplyAsync runAsync

Java8 CompletableFuture 创建线程 supplyAsync runAsync一、前言二、CompletableFuture创建新线程创建测试用的业务类supplyAsync(有返回值)runAsync(无返回值)一、前言Java8推出了CompletableFuture,它实现了很多功能,用它编写的代码也比较优雅。目前大多数公司用的JDK已经从6升级到8及以上了,那么作为一名合格的Java打工人,除了要掌握之前的FutureTask和CompletionServic

2022-01-11 16:58:55 1876

原创 IT综合运维系统-身份对接记录

问题11.由于该系统原先用的是shiro身份认证框架,现需要部分接口需要完成跟《信息职业技术学院》的系统进行身份对接,问题点怎么再原有的shiro身份认证框架上,又集成身份认证?分析1.查看了《信息职业技术学院》对接文档,和IT综合系统shiro的集合,发现他们都是对/*所有的请求进行拦截2.所以进行分析,只需要对相应接口进行相应的身份认证即可。解决3.故对需要身份对接的接口以/f/*前缀进行区分即可,如下: CASFilter org.jasig.cas.client.authe

2021-12-07 17:09:13 275

原创 身份认证对接Filter过滤器

问题在与深证信息职业学院系统身份认证的时候,该系统默认会在我们的回调地址栏加上;jsessionid=6EEB42B0546A1B057BD37A628CAE646F这个参数,导致我们http://10.10.16.172:8080/csos/f/PCRepairsMobile/getRedict;jsessionid=6EEB42B0546A1B057BD37A628CAE646F 我们的回调地址出现400错误,调用不到http://10.10.16.172:8080/csos/f/PCRepairsM

2021-12-06 10:54:04 486

原创 MyBatis-Plus 使用枚举saveBatch出现问题

一. 枚举类如下@JsonFormat(shape = JsonFormat.Shape.OBJECT)public enum OrderType implements IEnum<Integer>{ /** * LONELY_ORDER = "独立下单" */ LONELY_ORDER(1, "独立下单"), /** * FOLLOW_HARDWARE_ORDER = "随硬件下单" */ FOLLOW_HARDW

2021-11-03 14:10:08 705

原创 Java线程之setDaemon(true)方法的作用

一、线程JAVA线程分为即实线程与守护线程,守护线程是优先级低,存活与否不影响JVM的退出的线程,实现守护线程的方法是在线程start()之前setDaemon(true),否则会抛出一个IllegalThreadStateException异常。不能操作文件、数据库等资源,避免主线程关闭而未能关闭守护线程的资源,并且它会在任何时候甚至在一个操作的中间发生中断。二、优点及使用场景在主线程关闭后无需手动关闭守护线程,因为会自动关闭,避免了麻烦,Java垃圾回收线程就是一个典型的守护线程,简单粗暴的可以理

2021-09-01 16:34:53 4676

转载 IO密集和CPU密集与多线程的联系

IO概念IO是一个通用的概念,即数据从一个地方移动到另一个地方,对一个实体来说,可以看成数据从外部进入,以及从实体输出到外部。具体来说,常见的IO请求有网络IO,磁盘IO。那么因为CPU的工作频率远远快过和其连接的外部硬件,例如磁盘,所以CPU在IO的时候经常会需要等待外部硬件完成当前任务,完成之后,才能进行下一个任务,这种情况常常称为IO阻塞,即CPU直到等待IO操作返回前,不能继续运行。IO阻塞对于CPU强大的运算能力是一个巨大的浪费。所以有了多线程,多线程是同步运行的多个任务。不过由于CPU核

2021-08-26 10:33:52 428

原创 MyBatis-Plus (Lambda)写法

写法一:QueryWrapper<Student> queryWrapper = new QueryWrapper<>();queryWrapper.lambda() .eq(Student::getName, "冯文议") .or() .eq(Student::getName, "1");List<Student> studentList = list(queryWrapper);for (Student stud

2021-07-05 16:44:20 1017

原创 Mysql数据库优化

1.查询条件放到子查询中,子查询只查主键ID,然后使用子查询中确定的主键关联查询其他的属性字段;原理: 减少回表操作;mysql> select * from test where val=4 limit 300000,5;+---------+-----+--------+| id | val | source |+---------+-----+--------+| 3327622 | 4 | 4 || 3327632 | 4 | 4 || 3

2021-06-16 18:46:45 119

原创 记一次Tomcat运行程序优化

1.刚开始tomcat跑起来运行正常,但过了半天,程序跑起来太慢,考虑不是mysql,和网络,和服务器性能问题,就开始分析是否是堆栈,tomcat线程数问题,用jconsole分析了下,进行堆栈内存加大,和增大tomcat线程数。一、加大堆栈内存在tomcat/bin目录下找到catalina.sh,用文本编辑器打开,加上下面一行(位置如图):export CATALINA_OPTS="-Xms1024M -Xmx1536M -XX:PermSize=2048m-XX:MaxPermSize=20

2021-06-16 18:44:34 169

原创 设计模式之管道模式——pipeline与valve

场景在一个比较复杂的大型系统中,假如存在某个对象或数据流需要被进行繁杂的逻辑处理的话,我们可以选择在一个大的组件中进行这些繁杂的逻辑处理,这种方式确实达到了目的,但却是简单粗暴的。或许在某些情况这种简单粗暴的方式将带来一些麻烦,例如我要改动其中某部分处理逻辑、我要添加一些处理逻辑到流程、我要在流程中减少一些处理逻辑时,这里有些看似简单的改动都让我们无从下手,除了对整个组件进行改动。整个系统看起来没有任何可扩展性和可重用性。是否有一种模式可以将整个处理流程进行详细划分,划分出的每个小模块互相独立且各自负责

2021-02-05 09:45:42 1339

原创 Redis主从复制讲解

前提知识:当从服务器连接主服务器的时候,主服务会执行bgsave操作(bgsave就是执行rdb快照命令,会创建一个子进程执行执行快照操作)slaveof host port 和 slaveof no one 命令slaveof host port 开启复制slaveof no one 终止复制主从复制过程:注意:redis不支持主主复制主从链从服务也可以拥有自己的从服务器,因此形成了主从链。如果多个从服务器链接主服务器,主服务会无法快速的响应更新所有的从服务器,或者因为重新.

2021-02-03 16:07:44 132

原创 Redis持久化方式RDB和AOF方式

AOF方式:概念:配置文件appendonly yes打开aof配置appednfsync 同步频率选项推荐使用everysec这个选项aof缺点:解决:使用bgrewriteaof命令auto-aof-rewrite-percentage 100 和 auto-aof-rewrite-min-size 64mb 解释RDB方式概念:它可以将某一时刻的所有数据都写入硬盘里面。配置:rdbcompression yes 开始快照持久化save 60 1000

2021-02-03 15:43:13 129

原创 Redis中雪崩、击穿、穿透

穿透概念缓存穿透是指缓存和数据库中都没有的数据,而用户不断发起请求,我们数据库的 id 都是1开始自增上去的,如发起为id值为 -1 的数据或 id 为特别大不存在的数据。这时的用户很可能是攻击者,攻击会导致数据库压力过大,严重会击垮数据库。解决缓存穿透我会在接口层增加校验,比如用户鉴权校验,参数做校验,不合法的参数直接代码Return,比如:id 做基础校验,id <=0的直接拦截等Redis还有一个高级用法布隆过滤器(Bloom Filter)这个也能很好的防止缓存穿透的发生,他的原理

2021-02-03 10:26:20 324

原创 redis互斥锁

redis互斥锁设计方式一: 使用 set(arg1,arg2,arg3,arg4,arg5)//如果不存在就设置,且设置成功60秒后key自动失效,成功会返回字符串"OK ", 如果存在就不设置该keyString ret = jedis.set(key, value, “NX”, “EX”, 60);flag = ret.equals(“OK”) ? true : false;jedis.del(key);方式二: 使用 setnx(arg1,arg2)String ret = jedis

2021-02-03 10:26:07 1047

原创 SpringBoot-操作RedisTemplate拿来即用

1. 引入pom:<!--redis依赖配置--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency><!--连接池--><dependency> <groupId&

2021-01-28 14:40:47 197

原创 SpringCache操作Redis-@EnableCaching,@Cacheable,@CachePut,@CacheEvict使用

概念当Spring Boot 结合Redis来作为缓存使用时,最简单的方式就是使用Spring Cache了,使用它我们无需知道Spring中对Redis的各种操作,仅仅通过它提供的@Cacheable 、@CachePut 、@CacheEvict 、@EnableCaching等注解就可以实现缓存功能。常用注解@EnableCaching开启缓存功能,一般放在启动类上。@Cacheable使用该注解的方法当缓存存在时,会从缓存中获取数据而不执行方法,当缓存不存在时,会执行方法并把返回结果

2021-01-28 14:25:29 964

原创 RabbitMQ实现延迟消息-死信列队

RabbitMQ实现延迟消息的方式有两种,一种是使用死信队列实现,另一种是使用延迟插件实现。这个讲的是死信队列实现使用:添加依赖:<!--消息队列相关依赖--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId></dependency>.

2021-01-27 10:48:12 330

原创 RabbitMQ实现延迟消息-插件版本

RabbitMQ实现延迟消息的方式有两种,一种是使用死信队列实现,另一种是使用延迟插件实现。这个讲的是插件版本首先我们需要下载并安装RabbitMQ的延迟插件。去RabbitMQ的官网下载插件,插件地址:https://www.rabbitmq.com/community-plugins.html直接搜索rabbitmq_delayed_message_exchange即可找到我们需要下载的插件,下载和RabbitMQ配套的版本,不要弄错;将插件文件复制到RabbitMQ安装目录的plugin.

2021-01-27 10:31:33 969

原创 SpringBoot中处理参数校验和自定义参数校验

1. 开启校验功能<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-validation</artifactId></dependency>2. 常用的注解@Null:被注释的属性必须为null;@NotNull:被注释的属性不能为null;@AssertTrue:被注释的属性

2021-01-26 16:05:01 637

原创 Nginx中的root与alias的差别

格式nginx指定文件路径有两种方式root和alias,指令的使用方法和作用域:[root]语法:root path默认值:root html配置段:http、server、location、if[alias]语法:alias path配置段:locationroot与alias主要区别在于nginx如何解释location后面的uri,这会使两者分别以不同的方式将请求映射到服务器文件上。root的处理结果是:root路径 + location路径alias的处理结果是:使用ali

2021-01-25 08:58:45 541

原创 Hutool中那些常用的工具类和方法

Hutool是一个Java工具包,它帮助我们简化每一行代码,避免重复造轮子。如果你有需要用到某些工具方法的时候,不妨在Hutool里面找找,可能就有。本文将对Hutool中的常用工具类和方法进行介绍。安装maven项目在pom.xml添加以下依赖即可:<dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <v.

2021-01-22 14:53:41 689

原创 RestTemplate get和post使用方式

一 先创建一个可以访问的服务拿来测试:post请求地址:http://127.0.0.1/list?uid=1212&productCode=萨芬萨芬 @ResponseBody @PostMapping("/list") public List<Employee> list(@RequestParam("uid") String uid,@RequestParam("productCode") String productCode) { Sys

2021-01-21 10:47:35 217

原创 SpringBoot - @Configuration和@Bean的使用

Configuration配合@ConfigurationProperties和@EnableConfigurationProperties()实现Bean类自动赋值操作,加深下@Configuration注解使用一 . 创建了一个Hhc Bean类。public class Hhc { private String name; private Integer age; @Override public String toString() { re.

2021-01-20 16:23:31 397 1

原创 Spring Boot - 常用的一些注解

Spring Boot 常用注解@SpringBootApplication@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Inherited@Configuration@EnableAutoConfiguration@ComponentScanpublic @interface SpringBootApplication { /** * Exclude specific auto-co

2021-01-20 15:55:42 176

屏幕录像专家完整版-精简版录频软件

屏幕录像专家完整版

2020-12-23

空空如也

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

TA关注的人

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