自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 关于MyBatis拦截器失效问题的解决(多数据源、分页插件)

关于MyBatis拦截器失效的原因查找的一个思路和解决方案

2023-08-01 11:42:26 1871

原创 Excel下拉框超长和二级联动的问题

日常开发中,关于excel下拉框数据的两个问题

2023-07-14 16:14:47 1038

原创 关于自动重复调用接口的一种实现方式-反射

用Java的反射机制来获取接口的调用信息并实现自动重复调用

2022-07-16 23:52:42 821 1

原创 docker的一些介绍(一)

docker的一些基本介绍

2022-06-04 13:11:40 642

原创 关于线程池的详细介绍

线程池的一些细节介绍

2022-04-09 17:38:32 558

原创 记录几个很有意思的问题

数据库连接占用内存问题、ThreadLocal和redis脑裂问题

2022-03-28 18:13:31 1149 1

原创 Spring IOC源码系列(十):扩展点

spring的扩展点

2022-03-16 21:15:24 467

原创 关于缓存一致性的一些介绍

缓存一致性的一些介绍

2022-03-16 18:37:33 890

原创 Seata的一些介绍

Seata的一些基本介绍

2022-03-05 16:58:47 382

原创 动态规划有点意思

动态规划的一点点感觉

2022-03-03 15:01:32 66

原创 Rocket mq的一些介绍

Rocker mq的一些介绍

2022-02-28 18:18:17 1776

原创 mysql的一些介绍

mysql的一些介绍

2022-02-19 14:15:06 274

原创 AQS详解

AQS的一些介绍

2022-02-11 14:46:20 644

原创 AOP的一些原理

Spring AOP的一些介绍

2022-02-08 18:05:38 442

原创 Spring Cloud一些组件原理(一)

一些Eureka Server工作原理的介绍

2022-01-06 16:33:07 639

原创 SpringBoot的启动原理

SpringBoot启动的一些介绍

2021-12-31 17:39:46 547

原创 SpringBoot的自动装配

SpringBoot自动装配的一些介绍

2021-12-30 15:28:39 352

原创 JVM解析及GC介绍

主要是JVM GC部分的介绍

2021-12-25 10:50:15 703

原创 redis的一些介绍(二):底层数据结构

redis底层数据结构的一些介绍

2021-12-08 14:21:46 1215

原创 redis的一些介绍(一):几种数据类型

redis的一些介绍

2021-12-01 11:57:31 736

原创 Spring IOC源码系列(九):三级缓存和循环依赖

首先明确一点:二三级缓存就是为了解决循环依赖而出现的,也就是说如果不允许循环依赖的话,二三级缓存就不会用到,在AbstractAutowireCapableBeanFactory#doCreateBean方法可以看到 // allowCircularReferences 是否允许循环依赖 // 如果allowCircularReferences为false时,就不会往三级缓存里放东西了,也就不会有后续三级缓存的使用了 boolean earlySingletonExposure = (mbd.isSi

2021-11-25 11:50:46 303

原创 Spring IOC源码系列(七):填充属性和初始化过程

createBeanInstance(beanName, mbd, args),实例化;populateBean(beanName, mbd, instanceWrapper),填充属性;initializeBean(beanName, exposedObject, mbd),初始化;上篇说了实例化的过程,这篇说下剩下的填充属性和初始化的过程。AbstractAutowireCapableBeanFactory#populateBean protected void popul..

2021-11-18 10:48:22 854

原创 Spring IOC源码系列(六):bean实例化的过程

上篇提到bean的生成就是在AbstractAutowireCapableBeanFactory#doCreateBean方法中:createBeanInstance(beanName, mbd, args),实例化;populateBean(beanName, mbd, instanceWrapper),填充属性;initializeBean(beanName, exposedObject, mbd),初始化;这篇就来看下实例化的具体过程。AbstractAutowireCapableBe

2021-11-16 10:45:17 545

原创 Spring IOC源码系列(五)

obtainFreshBeanFactory();prepareBeanFactory(beanFactory);postProcessBeanFactory(beanFactory);invokeBeanFactoryPostProcessors(beanFactory);registerBeanFactoryProcessors(beanFactory);finishBeanFactoryInitialization(beanFactory);finishBeanFactoryIniti.

2021-11-12 11:52:56 218

原创 Spring IOC源码系列(四)

obtainFreshBeanFactory();prepareBeanFactory(beanFactory);postProcessBeanFactory(beanFactory);invokeBeanFactoryPostProcessors(beanFactory);registerBeanFactoryProcessors(beanFactory);finishBeanFactoryInitialization(beanFactory);obtainFreshBeanFactory.

2021-11-09 11:34:04 207

原创 Spring IOC源码系列(三)

obtainFreshBeanFactory();prepareBeanFactory(beanFactory);postProcessBeanFactory(beanFactory);invokeBeanFactoryPostProcessors(beanFactory);registerBeanFactoryProcessors(beanFactory);finishBeanFactoryInitialization(beanFactory);obtainFreshBeanFactory.

2021-11-08 11:34:07 85

原创 Spring IOC源码系列(二)

refresh()方法首先我们看下这个方法的源码 @Override public void refresh() throws BeansException, IllegalStateException { synchronized (this.startupShutdownMonitor) { // Prepare this context for refreshing. prepareRefresh(); // Tell the subclass to refresh th

2021-11-04 10:32:12 89

原创 Spring IOC源码系列(一)

三种启动方式ClassPathXmlApplicationContext这个是我们最常用的实现类了,我们经常会用这个类来构建一个Spring容器ApplicationContext context = new ClassPathXmlApplicationContext("classpath:application.xml");FileSystemXmlApplicationContext可以用系统文件来构建一个Spring容器,需要填写一个绝对路径的文件ApplicationContext

2021-11-03 11:09:39 71

原创 笔记(十):redis集群

tipsredis集群中的从节点既不支持写操作也不支持读操作,只是做个备份,当主节点挂了之后,转换成主节点顶上去,实现高可用。在redis集群中,多个节点分布在不同的机器上的,这个时候它会把不同机器上的节点分配成主从关系,例如:节点A和节点B在一台机器上,节点C和节点D在一台机器上,这个时候会把节点A和节点D分配成一对主从,节点C和节点B分配成一对主从,这样做主要是为了某一台机器挂了,整个Redis集群还能对外提供服务,实现高可用。...

2021-08-06 14:24:12 997 2

原创 关于servlet利用filter将参数进行加解密

问题描述我们在日常开发过程中,经常会有在filter中对请求参数进行统一修改,然后对响应数据也要做统一修改的需求。比如出于安全考虑,我们会将请求参数和响应数据进行加密,这个时候就需要在filter中将请求参数进行解密,给后续的接口使用,而且还要将接口响应的数据进行加密,返回给请求端,这里面就涉及到两个问题:数据的加解密和请求数据的修改。数据加解密一般我们都会使用https来保证我们和服务端的通信安全,https协议可以保证我们通信的数据是加密的,不会被别人抓包,但是对于一些对安全性要求比较高的公司,h

2021-07-30 15:13:52 1747

原创 笔记(四):索引优化实战

有索引但是没有走索引的原因之一mysql的优化器经过的运算发现不走索引查询可能会更快(回表操作,会有两次查询操作),可通过覆盖索引来优化,减少回表操作。有索引但是没有走索引的原因之二索引区分度较低,不能过滤出大多数数据,回表查询的成本大于全表扫描的成本,优化器会直接选择全表扫描。索引下推关键字:非主键索引,联合索引,模糊查询(最左前缀匹配原则),减少回表次数;索引下推是在5.6版本引入的,主要是为了充分利用查询条件,减少回表次数,举个例子:现在有(A1, 1)->(A1, 2)->

2021-07-10 10:19:22 121

原创 笔记(三):SQL底层执行原理

Mysql大体分为服务层和引擎层服务层分为连接器、语法分析器、优化器、执行器、缓存器(在5.8之后就被取消掉了)连接器管理连接和权限检验,语法分析器词法分析,语法分析,就是看你的sql语句写的对不对,构造执行树优化器生成执行计划,选择最优索引执行器调用引擎接口,获取查询结果binlogbinlog三种格式:statement、row、mixed;statement:记录执行的语句(可能导致数据不一致情况,不推荐使用);row:记录执行语句之后的结果(推荐使用);mixed:混合

2021-06-17 22:22:21 124

原创 笔记(二):Explain详解

字段typesystem>const>eq_ref>ref>range>index>all一般优化要优化到range级别;system和const基本上可以以为是常量查询;eq_ref是主键唯一查询;ref是非主键索引查询;range是范围查询;index虽然也走了索引,但是一般是遍历了索引的叶子节点,不能从根节点往下查找,会很慢,一般是需要优化的;all表示全表扫描,扫描聚簇索引的所有叶子节点,效率是最低的,需要优化;...

2021-06-16 22:21:02 97

原创 笔记:索引概念

什么是索引索引是一种帮助高效获取数据的排好序的数据结构索引的数据结构B+树为什么是B+树,而不是红黑树和B树红黑树树的高度很高,这样很不利于快速查找到数据,树的高度越高,需要查找的次数就越多;B树的非叶子节点包含了数据,我们知道索引的数据页大小是固定的,默认是16KB,也就是说单个数据越小,一个数据页能存放的数据量就越大,B树的非叶子节点包含了数据,它单个数据要比B+树的单个数据大很多,这样相同数量级的数据,B树存储要比B+树存储的树高高很多,树的高度越高,需要查找的次数也就越多,另外B+树的叶

2021-06-12 23:14:46 185 3

转载 Swarm即将空投1,000,000个BZZ

前言:Swarm将向已经在testnet上运行Bee节点的人发放100万BZZ代币,官方把这次空投称为"Bee的崛起"。swarm.ethereum.org划重点Swarm将空投100万枚BZZ代币。要成为空投的一部分,你必须运行并安装一个Bee节点。对网络的贡献越大,你获得BZZ代币的机会就越多。在Swarm进入主网之前,你需要从qBee节点中兑现支票以获得代币。有几种安装和运行蜜蜂节点的方法活动于2021年2月14日开始,Goerli区块号为4283397。为什么要做这个空投?

2021-06-10 20:06:47 201

原创 面试题集合(二)

JVMJVM调优JVM线上分析问题设计模式平时用到的设计模式有哪些?用到的场景是什么样的?

2021-04-04 14:00:30 93

原创 面试题集合(一)

面试题集合(一)线程池Java自带的线程池有几种?任务队列使用的是什么队列?线程池的各个参数,工作过程,是否有手动实现过线程池?Java基础HashMap的碰撞扩容过程线程池Java自带的线程池有几种?任务队列使用的是什么队列?一共有四种,分别是:1、newSingleThreadExecutor,单线程线程池,只有一个线程执行所有任务,如果这个线程异常结束,那么会创建一个新的线程来代替它。这种线程池确保了任务是顺序执行,且保证一定有线程去执行任务。2、newFixedThreadPool,固定大

2021-03-06 17:21:43 80

原创 Java面试题(一):基础

一、Java 反射?反射有什么缺点?你是怎么理解反射的(为什么框架需要反射)?1、定义:Java在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法,对于任意一个对象,都能够调用它的任意一个方法和属性,这种动态获取信息和动态调用对象方法的功能称为Java的反射机制。2、反射的优缺点:a、优点:反射提高了Java程序的灵活性和扩展性,降低了代码的耦合性,减少了硬编码。...

2020-04-14 20:07:07 654

原创 对接微信支付-坑

接上一篇,对接微信支付流程比较简单,但是有一些小坑需要注意,所以相比上一篇,这篇才是重点。一、获取用户的openId:微信获取用户的openId的文档是这个:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842,最开始我的想法是全部在后端实现,全部直接http请求。后来发现它的第一个地址是一个页面,必须要...

2019-01-22 14:08:08 399

原创 对接微信支付-流程

最近接到了一个对接微信支付的需求,整个过程还算顺利,其中也有点小坑,网上很多人都已经说了,遇到问题百度一下就ok了。写这篇主要是自己记录一下,以免忘记。对接第三方接口的话,第一件事肯定就是看对方的文档了。微信支付的文档地址:https://pay.weixin.qq.com/wiki/doc/api/index.html,文档很全,看看基本上都知道应该怎么做了。以微信内支付说一下整个流程吧。...

2019-01-22 11:33:23 550

空空如也

空空如也

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

TA关注的人

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