
工作
文章平均质量分 78
TankyZhang
软件开发的小学生
展开
-
微服务会话管理
微服务会话管理 HTTP是无状态的协议,因此服务器无法确认用户的信息。W3C就提出了:给每一个用户都发一个通行证,无论谁访问的时候都需要携带通行证,这样服务器就可以从通行证上确认用户的信息。通行证就是Cookie。如果说Cookie是检查用户身上的”通行证“来确认用户的身份,那么Session就是通过检查服务器上的”客户明细表“来确认用户的身份的。Session相当于在服务器中建立了一份“客户明细表”。HTTP协议是无状态的,Session不能依据HTTP连接来判断是否为同一个用户。于是:服务器向用户浏原创 2021-03-14 18:34:38 · 653 阅读 · 0 评论 -
Github的常用搜索操作
关于Github大家可能会经常使用,今天也是在使用的过程中翻到了之前的一个笔记,笔记的内容有些遗忘了,今天整理到这篇博客中吧。 首先Github作为代码仓库其中保管了大量的项目代码,但是如何在最短的时间内找到自己想要的项目代码呢?因为我们一搜某个项目只能在github的搜索框中搜索,一旦搜索就会出现很多条数据,有没有其他条件可以限制一下呢。接下来简单介绍一下常用的几个搜索条件。 首先我们可以...原创 2020-03-01 23:20:46 · 1066 阅读 · 0 评论 -
关于jvm的个人整理
Jvm是Java程序员永远绕不开的一个话题,今天聊下jvm,jvm主要的构成部分主要有以下的几部分:1.方法栈:该部分是线程独享的,每一个方法在其中就是一个栈帧当执行方法时候方法就会压入其中,称为压栈执行,在每个栈帧中维护了一个局部变量表用来存用用到的基本数据类型和对象的引用。2.程序计数器(PC寄存器):它记录了程序执行的位置,他也是线程独享的,在采取时间片轮询的时候它记录了线程挂起的位置。...原创 2020-02-26 23:38:20 · 157 阅读 · 0 评论 -
关于Spring启动早期最先注册的六个BeanDefinition的解释
在spring初始化的过程中会注册六个非常重要的beandefinition,他们的名字分别是:1.org.springframework.context.annotation.internalConfigurationAnnotationProcessor2.org.springframework.context.annotation.internalAutowiredAnnotatio...原创 2020-02-25 19:39:35 · 678 阅读 · 0 评论 -
聊聊Spring中的ConfigurationClassPostProcessor
之前有讲到过在Spring中有各种各样的BeanFantoryPostProcessor后置处理器,在这些后置处理器中有一个对于Spring使用java Config起着至关重要的后置处理器,他就是ConfigurationClassPostProcessor,因为通过他的一个方法postProcessBeanDefinitionRegistry会进行类的扫描以及注册,在这个方法中对于配置类进行...原创 2020-02-23 16:37:27 · 2655 阅读 · 0 评论 -
关于JVM的解释执行与编译执行
在现代虚拟机(像HotSpot)在执行java代码的时候通常采用编译执行和解释执行相结合的方式,所谓的解释执行就是采用解释器来读取字节码,遇到相应的指令就是执行指令。所谓编译执行就是通过即时编译器(Just In Time,JTI)将字节码转为本地机器码来执行;现代jvm会根据热点 代码来生成相应的本地机器码。 在程序执行的时候有两种指令集,一种是基于栈的指令集一种是基于机器的指令集,关于这两...原创 2020-02-21 18:36:56 · 624 阅读 · 0 评论 -
聊聊Spring中的BeanFactoryPostProcessor以及其子类
BeanFactoryPostProcessor顾名思义bean工厂的后置处理器,它主要是对bean工厂做一些操作,他可以利用其中的postProcessBeanFactory方法对beanfactory做一些操作,同时他有一个比较厉害的实现类BeanDefinitionRegistryPostProcessor,这个抽象类继承了BeanfactoryPostProcessor,同时多定义了一个...原创 2020-02-20 09:23:56 · 1084 阅读 · 0 评论 -
Spring使用多级缓存解决循环依赖的问题
在Spring的依赖中有一个比较特殊的依赖,它比较复杂而且重要,今天就来聊一下Spring中的依赖----循环依赖。 循环依赖实际上是一种问题,他的描述就是一个A对象依赖了B对象,而B对象又依赖了A对象,所以这样产生了循环依赖这个问题,在Spring中会又三种循环依赖的情况,他们分别是两个对象中的构造方法中产生了依赖关系,另外一种情况就是单例模式下的set方法的循环依赖关系,第三种情况就是多例...原创 2020-02-16 22:51:03 · 2004 阅读 · 0 评论 -
关于Spring中的DispatcherServlet和ContextLoaderListener的配置源码解读
在我们的spring项目搭建的过程中通常会使用web.xml会经常看到如下的配置: 在web.xml中我们配置了一个ContextLoaderListener和一个DispatcherServlet,但是我们从来没有关心过为什么要在这里配置一个监听器和一个servlet,并且也没有考虑过如果不使用web.xml能不能实现这个功能。今天我们就来讲解一下这两个东西到底做了什么,再就是有没有其他的...原创 2020-02-06 20:46:55 · 481 阅读 · 0 评论 -
Reactor模式的详细介绍以及netty对其的具体实现
关于Reactor与Proactor模式在上一篇文章中有过简单的介绍,本文想主要介绍一下Reactor模式,因为无论是java的Nio还是netty都很好的使用了Reactor模式,可见这种模式的重要作用,本文主要参考了并发大神Doug Lea在《Scalable IO in Java》一文中的一些讲解,同时也参考了 Jim Coplien 和Douglas C. Schmidt在95年发表在的...原创 2020-02-05 17:38:06 · 543 阅读 · 0 评论 -
理解Reactor模式与Proactor模式
我在之前的文章中有写过对堵塞非堵塞,同步异步的一些理解,由于最近在看一些netty的资料,并且netty是Reactor模式的一种优秀实现,所以想借此机会简单介绍下我对于常见的两种Io模式的理解,在目前的各种应用中最为常见的要数Reactor模式,因为Proactor模式需要操作系统的支持,所以世面上有很少的关于Proactor模式的实现,Proactor模式是将来的一种趋势,因为硬件和操作系统...原创 2020-02-04 23:38:56 · 756 阅读 · 0 评论 -
使用Redis的api实现mq生产消息的异步补偿
在生产环境中各种应用的开发越来越多的使用到了mq消息队列,很多mq的中间件都实现了消费者消费消息失败的补偿机制,但是mq的生产者发送消息失败是个令人头疼的问题,因为mq并未对其做一些补偿,所以今天就来介绍一个利用Redis实现的补偿机制。 使用Redis作为补偿的思路就是利用了Redis中的各种api,如果业务流程中生产者发送消息失败业务流程感知到立刻调用storemsg方法将消息存储到Re...原创 2020-02-04 09:10:01 · 1311 阅读 · 0 评论