自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 短链原理与实现方案

发送邮件通知,嵌入链接跳转到系统后台页面,如果链接过长,消息体显示的时候会影响布局与美观,所以需要将原始的http长链接转为短链接显示,当点击短链接跳转时,采用301或302状态码的方式将短链重定向到长链。...

2022-08-31 15:18:24 1960 1

原创 Http连接池实现

通过PoolingHttpClientConnectionManager实现http连接池

2022-08-26 11:48:19 345

原创 Java邮件发送

Java邮件发送

2022-08-11 11:33:36 186

原创 MyBatis的BaseTypeHandler用法

有时候我们库里面存的是以逗号分隔的字符串,但返回出去需要成为一个list,若在业务代码中每次都去单独处理会很繁琐,那么我们就可以用BaseTypeHandler统一处理,当然我们也可以用来做一些字段的加密解密过程。...

2022-08-11 10:57:06 1650

原创 SpringBoot配置双数据源

springboot双数据源得配置

2022-08-10 17:24:30 1894 1

原创 ELK结合kafka环境搭建

ELK + kafka流程搭建

2022-08-03 10:53:32 996

转载 mybatis一二级缓存

聊聊MyBatis缓存机制 - 美团技术团队

2021-10-27 11:41:37 85

转载 spring4到spring5 AOP执行顺序的转变

公司这两个月启动了全新的项目,项目排期满满当当,不过该学习还是要学习。这不,给公司搭项目的时候,踩到了一个Spring AOP的坑。本文内容重点:问题描述Spring AOP执行顺序探究顺序错误的真相代码验证结论问题描述公司新项目需要搭建一个新的前后分离HTTP服务,我选择了目前比较熟悉的SpringBoot Web来快速搭建一个可用的系统。鲁迅说过,不要随便升级已经稳定使用的版本。我偏不信这个邪,仗着自己用了这么久Spring,怎么能不冲呢。不说了,直接引入了最新的Sp

2021-10-18 10:20:00 626 1

原创 什么是CAS?

CAS是compare and swap的缩写,中文翻译为比较并交换。先通过AtomicInteger来看一个Demopublic class Demo { public static void main(String[] args) { // 原子类 不传入参数5,默认为0 AtomicInteger atomicInteger = new AtomicInteger(5); // compareAndSet就是一个cas操作,这个方法的.

2021-10-15 18:15:58 424

原创 AQS分析解读

要分析AQS需要一些前置知识,什么是重入锁,什么是LockSupport?下面我们卓一探讨研究。一:可重入锁可重入锁又名递归锁,是指在同一个线程在外层方法获取锁的时候,再进入该线程的内层方法会自动获取锁(前提:锁对象是同一个对象),不会因为之前已经获取过还没释放而阻塞。Java中ReentrantLock和synchronized都是可重入锁,可重入锁的一个优点就是可一定程度的避免死锁。二:LockSupportLockSupport是用于创建锁和其他同步类的基本线程阻塞原语。可以理

2021-10-15 11:01:29 69

原创 Redis内存淘汰策略

一:Redis最大占用内存打开redis的redis.conf配置文件,设置maxmemory参数,注意maxmemory是byte字节类型。如果不设置最大内存大小或者设置最大内存大小为0,在64位操作系统下不限制内存大小,在32位操作系统下最多使用3GB内存。一般推荐Redis设置内存为最大物理内存的的四分之三。如何修改reids内存设置?1.手动进入redis.conf配置文件修改2.通过命令修改查看redis内存使用情况命令:info memory二:Redis..

2021-10-11 15:56:05 182

原创 Linux下Redis安装详解

1.把redis安装包上传到/opt目录下2.解压文件 tar -zxvf redis-6.2.5.tar.gz3.进入解压后的redis文件,能看到redis.conf配置文件4.执行make命令 (需要等待一会)5.执行make install命令6.redis的默认安装路径是 /usr/local/bin7.在bin目录下新建一个配置文件夹,将redis中的redis.conf 复制一份过来8.redis默认不是后台启动的,所以我们需要修改配置文件...

2021-08-29 13:27:39 73

原创 Linux_CentOS安装

镜像文件下载: 1.官网:https://www.centos.org/download/ 2.阿里云:http://mirrors.aliyun.com/centos/ (建议用阿里云)安装步骤:1.新建虚拟机,直接选典型2.选中稍后安装操作系统3.操作系统选择Linux,版本选择Red Hat 7版本4. 给虚拟机命名,选择虚拟机存放的位置5.设定磁盘大小(一般20G就可以了),选择拆分成多个文件6.自定义硬件...

2021-08-26 00:26:38 86

原创 volatile关键字的理解

一:基本概念volatile是java虚拟机提供的轻量级同步机制。三种特性: 1.保证可见性 2.不保证原子性 3.禁止重排序二:关于可见性首先,我们需要稍微了解一下JMM,JMM(Java内存模型Java Memory Model)本身是一种抽象的概念并不真是存在,它描述的一组规则或规范,通过这组规范定义了程序中各个变量(包括实例字段,静态字段和构成数组对象的元素)的访问方式。JMM关于同步的规定: 1.线程解锁前,必须把...

2021-08-20 17:31:21 88

原创 ReentrantLock 与synchronized 区别简要

1.原始构成synchronized 是关键字,属于jvm层面。ReentrantLock 是具体类,属于api层面。2.使用方法synchronized 不需要手动释放锁,当synchronized 代码执行完后系统会自动让线程释放锁。ReentrantLock 则需要手动释放锁,就有可能导致死锁。需要lock()和unlock()方法配合try/finally语句块来完成。3.等待是否可中断synchronized 不可中断,要么抛出异常,要么正常运行完成。ReentrantLock

2021-08-19 17:20:04 90

原创 JUC下的CountDownLatch,CyclicBarrier,Semaphore

一:CountDownLatchCountDownLatch是一个同步工具类,用来协调多个线程之间的同步,或者说起到线程之间的通信(而不是用作互斥的作用)。CountDownLatch能够使一个线程在等待另外一些线程完成各自工作之后,再继续执行。使用一个计数器进行实现。计数器初始值为线程的数量。当每一个线程完成自己任务后,计数器的值就会减一。当计数器的值为0时,表示所有的线程都已经完成一些任务,然后在CountDownLatch上等待的线程就可以恢复执行接下来的任务。CountDownLatch

2021-08-19 11:02:38 94

原创 BeanPostProcessor后置处理器工作记录

前景引入:前端部门组件是存在jar包里面的源码,无法修改调用后端链接,由于后端架构升级,导致前端调用的接口无法满足,后端也是源码无法修改。那么怎么才能让前端的写死的请求重新定位到我们自己的业务类以便来修改对应的业务。解决办法(使用BeanPostProcessor后置处理器):1.通过查看代码得知原业务代码类(BusinessServlet)继承了HttpServlet,那么我们自己也新建一个类(MyServlet)去继承HttpServlet用来修改原业务逻辑。2.写一个我们自己的后置处理

2021-08-18 10:42:42 95

原创 Java多线程死锁的那些事...

什么是死锁?在Java中,死锁是指最少两个线程在某些不同的资源上持有锁,并且两者都在等待其他资源完成其任务的情况。并且,没有人能够锁定它所拥有的资源。产生死锁的条件:1.相互排斥:当一个线程获得资源后,其他线程必须等待。2.一旦抢占了资源,就不会主动释放。3.不可被抢占,获取资源后,不会被抢占。4.循环等待。注:打破任一条件,即可破坏死锁。避免死锁的几个常用方法:1.避免一个线程同时获取多个锁。2.避免一个线程在锁内同时占用多个资源,尽量保证每个锁只占用一个资源。

2021-08-17 16:33:05 139

空空如也

空空如也

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

TA关注的人

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