自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 并发之synchronized关键字解析

JAVA操作线程的3种方式 直接通过Thread.start()方法 在java中我们可以直接通过以下方式进行线程创建运行 public static void main(String[] args) { new Thread(()->{ System.out.println("hello word!!"); }).start(); } 通过实现Runnable接口 新建类实现Runnable class MyRunnable implements Runna

2021-04-26 23:33:27 76 1

原创 记一次登录业务中使用模板方法优化代码

记一次登录业务中使用模板方法优化代码 业务背景 在登录中经常会碰到多种方式去登录账号,可能会通过用户名密码、手机验证码、邮箱密码等等登录方式。在后端代码处理的时候常规做法可能是做成多个接口来调用,这大大提高了接口的维护成本。 登录流程解析 在登录这个业务需求里面,最核心的就是通过用户输入各种各样的表单,最终要获取的都是一条用户数据。整个业务中变化的也就只是表单的校验、通过表单数据获取用户数据的过程不同。其他的业务逻辑基本上是一样的。所以可以采用模板方法对公共的逻辑进行放在父类抽象类里面去执行,子类在之

2021-04-26 23:32:33 66

原创 总结一下Spring常用的一些东西

总结一下Spring以及SpringBoot出现的一些接口和注解 ApplicationContextAware接口类 ​ 这个接口是Spring暴露给外面获取ApplicationContext上下文,获取bean实例的一个接口。在项目中一般定义一个工具类,继承这个接口,从而可以直接通过工具类获取Bean实例 @Component public class SpringApplicationUtil implements ApplicationContextAware { public stat

2021-04-26 23:28:57 106 1

原创 Kafka常用命令

Kafka常用命令概览 脚本概览 bin目录下的脚本 脚本 作用 connect-distributed.sh 用于启动多节点的Distributed模式的Kafka Connect组件 connect-standalone.sh 用于启动单节点的Standalone模式的Kafka Connect组件 kafka-acls.sh 用于设置Kafka权限,比如设置哪些用户可以访问Kafka的哪些TOPIC的权限 kafka-broker-api-versions.sh 主要用于验

2021-04-26 23:27:41 90

原创 Centos部署java环境

下载并解压jdk tar -zxvf jdk-8u251-linux-x64.tar.gz 打开 /etc/profile文件 vim /etc/profile 添加配置信息 export JAVA_HOME=/home/toutou/myhome/soft/jdk1.8.0_251 export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar export PATH=$

2021-04-26 23:25:56 44

原创 Mybatis核心源码解析-SQL执行流程分析

一、Mybatis Mybatis是基于JAVA开发的一款半自动ORM框架,Mybatis相比于JPA这一类全自动ORM框架更加灵活,在面对需求多变复杂的项目时使用Mybatis能够很好的解决相关的问题。这篇文章基于Mybatis3.3.0版本进行解析 二、源码解析 分析源码,最先要找到程序入口,Mybatis的入口是在SqlSessionFactoryBuilder 这个类,通过build方法,获取到SqlSessionFactory类,最后获取到SqlSession ...

2021-04-26 16:07:28 82

原创 ReentrantLock重入锁解析

一、ReentrantLock ReentrantLock是JUC工具包中的一个核心工具类,相对于Synchronized来说提供了更加细致的锁实现,在ReentrantLock中对锁进行大量的优化过程,使用了大量的CAS操作和自旋操作,尽量避免线程进入阻塞状态避免性能的损耗。这篇文章主要根据jdk源码对ReentrantLock进行一个全面的解析。 二、源码解析 重入锁的入口是以下方法,当有线程进来时,进入lock方法,lock调用Sync的lock方法,Sync又是继承自Abstra...

2021-04-26 15:00:49 144

空空如也

空空如也

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

TA关注的人

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