自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 spring源码(六)实例化bean

spring 实例化bean原理(详解)

2022-09-05 16:34:28 216 1

原创 spring源码(五)自定义作用域扩展

实现自定义作用域的四种方式

2022-08-30 17:08:57 448 1

原创 spring源码(四)自定义标签

spring自定义标签自定义标签也叫自定义命名空间自己实现一套自定义标签具体实现源码解析自定义标签也叫自定义命名空间用过dubbo的同学应该都知道怎么在xml中配置服务的发布与引用,而且配置dubbo的配置文件是被spring容器加载的,原生的spring可是没有< dubbo:xxx >这样的标签的,spring是如何解析和加载这种标签的对象呢自己实现一套自定义标签如何构建其...

2019-11-05 17:59:40 191

原创 spring源码(三)自定义spring监听

先了解观察者模式在讲解spring监听器之前,我们先了解一下观察者模式,spring的监听模式是基于这个模式开发的。观察者模式定义一系列对象之间的一对多关系,当一个对象改变、更新状态时,依赖它的都会收到通知改变或者更新。角色:1、抽象主题(Subject):它把所有观察者对象的引用保存到一个聚集里,每个主题都可以有任何数量的观察者。抽象主题提供一个接口,可以增加和删除观察者对象。2、具体...

2019-09-03 17:44:57 178

原创 spring源码(二)自定义作用域

spring的作用域spring的作用域限定了Spring Bean的作用范围,在Spring配置文件定义Bean时,通过声明scope属性配置项,可以灵活定义Bean的作用范围。例如,当你希望每次IOC容器返回的Bean是同一个实例时,可以设置scope为singleton;当你希望每次IOC容器返回的Bean实例是一个新的实例时,可以设置scope为prototype。scope配置项有5...

2019-09-02 18:03:51 601

原创 spring源码(一)主流程

之前看spring源码,看一部分就写了一部分的笔记,并没有把很多流程总结出来,所以今天我就把之前看的spring加载的主流程梳理了下,方便之后在主流程的基础上各个分支功能的拓展。spring应该从什么地方开始看起1.可以根据你要了解的功能入手,debug一步步走下去2.可以根据bean创建的主流程看起,个人比较推荐,(先熟悉了主流程,之后按功能入手会比较轻松)spring的主流程创建上下...

2019-09-02 16:50:52 196 1

原创 手写LRU缓存

一、什么是LRULRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。当然我们最熟悉的redis中的内存淘汰策略也可以使用LRU策略。二、如何去实现LRU的原理是在我们访问缓存中的一个数据的时候会认为当前这个数据是热点数据,而那些在缓存中长时间没有被访问的数据会认为是很肯能不再...

2019-08-30 12:09:10 1089

原创 nginx学习篇(五)利用nginx实现附加功能

跨域问题问题由来:浏览器拒绝执行其它域名下的ajax运作<!DOCTYPE html><html><head><meta charset="utf-8"><script>function loadXMLDoc(){ var xmlhttp; if (window.XMLHttpRequest) { // IE...

2019-04-23 19:54:57 193

原创 nginx学习篇(四)路由规则

Nginx的信号在上一篇日志切割中我有用到kill -USR1 这个命令,那这个命令是干嘛的呢,信号用来通知进程发生了异步事件,在软件层次上是对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。信号是进程间通信机制中唯一的异步通信机制,一个进程不必通过任何操作来等待信号的到达,事实上,进程也不知道信号到底什么时候到达。进程之间可以互相通过系统调用kill发...

2019-04-14 21:39:09 2962

原创 nginx学习篇(三)配置文件解析

配置文件结构main(全局设置)events设定nginx的工作模式及连接数上限http 服务器相关属性server(虚拟主机设置)upstream(上游服务器设置,主要为反向代理、负载均衡相关配置)location(URL匹配特定位置后的设置)nginx全局属性配置user :主模块命令, 指定Nginx的worker进程运行用户以及用户组,默认由nobody账号运行。w...

2019-04-14 20:03:20 407

原创 nginx学习篇(二)nginx的基本应用

一、安装

2019-04-13 22:29:51 154

原创 nginx学习篇(一)浅谈内部核心架构

一、什么是nginxnginx是一款免费的、开源的、高性能的HTTP服务器和反向代理服务器,在我们工作中主要用在这三个方向:静态服务器反向代理负载均衡当然还有一些其它的功能(如灰度分流…)这篇就不细究了,会在后面的章节谈及。nginx可以承受每秒1万次的请求量,而它之所以能接受这么多的请求是因为它的架构模式决定的。它的设计不像其它服务器那样使用线程处理请求,而是利用的异步事件驱动,...

2019-04-13 13:07:47 347

原创 手写RPC框架

概念什么是RPC,remote produce call 远程过程调用,也就是在分布式项目中服务调用方调用远程服务就像调用本地服务一样,透明化调用。实现这个功能的技术目前很多,有Java的rmi、http调用、protobuf、dubbo等。实现方式服务提供方首先会往注册中心注册本地提供的服务;服务调用方会从服务注册中心获取服务提供方的服务信息;调用方发起一个服务,并获取一个动态代理类...

2019-02-04 22:34:02 229

原创 初学MongoDB

什么是MongoDB最近在学习MongoDB,它是目前最受欢迎的nosql数据库,nosql的意思是not only SQL,是非关系型数据库,没有复杂的SQL查询语言,没有事物支持(听说MongoDB 4.*已经支持事物了)没有固定的表结构,速度快。MongoDB:是一个数据库 ,高性能、无模式、文档性,目前nosql中最热门的数据库,开源产品,基于c++开发。是nosql数据库中功能最丰富,...

2019-01-24 17:26:55 153

原创 maven学习

maven的基本命令最近一些项目有经常用到maven命令,虽然会用一些命令,但是maven到底是怎样的还是不太了解。我们都知道maven是用来构建工程的,maven的使用大大便利了我们对项目的构建和编译发布。maven也有他自己的生命周期:mvn compile 这个命令是用来编译你的项目,并且在项目根目录下的target目录会生成对应的class文件。mvn clean 这个命令是用来清...

2019-01-22 19:22:36 100

原创 优雅停机

最近我们公司有一个优雅停机的需求,正好我也参与其中,于是就顺便了解了一些原理。什么是优雅停机,字面的意思就是优雅的停机,如何优雅的停机呢?首先我们要把停机前接受的请求都处理掉吧,光处理请求还不行,你还得不让新的请求进来(引流挡板)。我看网上写的优雅停机大部分都是使用showdownhook()钩子来实现停机前的处理,也就是如下的代码:/** * 优雅停机处理方式 * **/publi...

2018-12-29 18:30:06 1951 1

原创 全局唯一ID生成方式

全局id的使用场景在一个应用系统中,我们可能需要使用到一个不管任何时间,任何机器上都必须是唯一的一串数字标识,用来辨别唯一的一条数据。例如订单系统中的订单必须是唯一的不能重复,数据库的分库分表中存的数据也需要唯一标识来找到对应的数据,还有其他的一些要求全局唯一的场景都是非常重要的。还有一些场景不仅需要数据符合全局唯一,还需要顺序或趋势递增、信息安全等。UUID生成器UUID是指在一台机器上生...

2018-12-19 18:05:12 996

原创 手写springMVC

实现原理springmvc是spring推出的面向前后端的模块框架,springMVC主要原理是根据浏览器发送的URL请求通过核心类dispatcherServlet通过配置的映射关系匹配到对应的servlet类即controller层的controller类,然后controller类会调用service层的serviceImpl实现类处理业务逻辑,如果有操作数据库的操作就会调用dao层的类(...

2018-12-13 20:07:22 112

原创 问题集01

工作中遇到的问题集01问题的由来:新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入问题的由来:我们公司是迭代...

2018-12-13 17:45:34 109

原创 java并发底层实现原理

java代码在编译后会变成java字节码,字节码被类加载器加载到JVM里,JVM执行字节码,最终需要转化为汇编指令在CPU上执行,java中所使用的并发机制依赖于JVM的实现和CPU的指令。volatile的应用synchronized的实现原理与应用volatile的应用1.volatile的定义与实现原理 定义:java编程语言允许线程访问共享变量,为了...

2018-07-19 22:31:57 319

原创 学习Ajax

Ajax技术简介Ajax技术使用XMLHttpRequest类实例使用JQuery实现AjaxAjax技术简介在传统的web应用中,每次请求服务器都会生成新的页面,用户在提交请求之后,总要等待服务器的响应。如果前一个请求没得到响应,则后一个请求就不能发送。由于这是一种独占式的请求,因此如果服务器响应没有结束,用户就只能等待或者不断刷新页面。在等待期间,由于新的页...

2018-07-15 19:02:17 131

原创 网络编程基础

网络编程基础由于是第一次写博客可能问题比较多,请大家见谅:网络及其相关的概念ip地址的组成tcp/ip的三次握手四次挥手Socket编程网络编程基础网络及其相关概念模型对比TCP协议和UDP协议ip地址的组成tcp/ip的三次握手四次挥手Socket编程代码实现用户登录代码实现用户咨询网络及其相关概念简单的来说网络就是连...

2018-07-13 22:33:55 653

空空如也

空空如也

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

TA关注的人

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