高阶扩展
文章平均质量分 86
紫罗兰盛开
左手编程,右手理财
展开
-
epoll、poll、select的原理和区别
一、什么是epoll?epoll是一种I/O事件通知机制,是linux 内核实现IO多路复用的一个实现。IO多路复用是指,在一个操作里同时监听多个输入输出源,在其中一个或多个输入输出源可用的时候返回,然后对其的进行读写操作。epoll有两种工作方式,ET-水平触发 和 LT-边缘触发(默认工作方式),主要区别是:LT,内核通知你fd是否就绪,如果没有处理,则会持续通知。而ET,内核只通知一次。二、epoll的三个函数 int epoll_create(int size)size参数告诉内核这原创 2021-08-24 14:49:14 · 52446 阅读 · 4 评论 -
spring源码解读系列(八):观察者模式--spring监听器详解
一、前言在前面的文章中spring源码解读系列(八)中,我们继续剖析了spring的核心refresh()方法中的registerBeanPostProcessors(beanFactory)(完成BeanPostProcessor的注册)和initMessageSource()(为上下文初始化message源,即不同语言的消息体,国际化处理),有心的朋友顺着我们的思路继续看,发现下面开始了initApplicationEventMulticaster()(初始化事件监听多路广播器),那么什么又是多路广播原创 2021-08-17 15:28:31 · 14902 阅读 · 3 评论 -
spring源码解读系列(七):注册BeanPostProcessor及初始化messageSource
一、前言在spring源码解读系列(五)中我们介绍了spring核心方法org.springframework.context.support.AbstractApplicationContext#refresh中的invokeBeanFactoryPostProcessors(beanFactory)方法,调用各种beanFactory处理器,并在spring源码解读系列(六)中详细介绍了最重要的beanFactory,即ConfigurationClassPostProcessor,今天我们接着介绍r原创 2021-08-16 17:32:24 · 17487 阅读 · 1 评论 -
spring源码解读系列(六):注解开发的核心实现ConfigurationClassPostProcessor
一、前言在前面的文章中spring源码解读系列(五),我们详解了spring工厂调用BeanFactoryPostProcessors的过程,今天我介绍一下spring工厂中最重要的一个BeanFactoryPostProcessor,即ConfigurationClassPostProcessor,该类是实现spring注解开发的基石,是零配置开发的基础。该类的主要作用是:完成我们常用注解的解析,例如@Configuration,@Bean,@Component,@ComponentScan,@Impo原创 2021-08-12 16:41:31 · 14309 阅读 · 3 评论 -
spring源码解读系列(五):BeanFactoryPostProcessors的调用
一、前言在前面的文章中spring源码解读系列(四),我们已经解析到spring的核心方法org.springframework.context.support.AbstractApplicationContext#refresh的prepareBeanFactory(beanFactory)方法,今天我们接着往下解析,下面postProcessBeanFactory(beanFactory)主要是个空实现,留给子类扩展使用,在spring-web中有详细的扩展,我们暂不做详解,重点看下面的invokeB原创 2021-08-09 16:29:59 · 12038 阅读 · 2 评论 -
spring源码解读系列(四):创建BeanFactory的准备工作
一、前言在前面的文章中(spring源码解读系列(二),spring源码解读系列(三)),我们已经详细介绍了spring的核心方法org.springframework.context.support.AbstractApplicationContext#refresh中的第一步prepareRefresh()和第二步ConfigurableListableBeanFactory beanFactory = obtainFreshBeanFactory(),今天我们接着介绍下面的方法。二、解析prepa原创 2021-08-06 14:49:01 · 11686 阅读 · 1 评论 -
spring源码解读系列(三):详解spring自定义标签
前言在spring源码解读系列(二)的最后我们发现了spring解析bean的方法分为两种,一种是解析spring工厂内部默认的标签,即import、alias、beans、bean;另一种是解析我们自定义的标签,本文详细分析spring解析自定义标签的过程,并带领大家自己实现一个自定义标签。一、解析自定义标签入口parseCustomElement方法作用:根据namespaceUri找到对应的NamespaceHandler实现类对象,然后调用parse方法对传入的标签元素进行解析 @Nulla原创 2021-08-03 14:04:01 · 14218 阅读 · 4 评论 -
spring源码解读系列(二):Spring的核心refresh
前言本篇文章我们进入Spring最核心的方法org.springframework.context.support.AbstractApplicationContext#refresh,先整体熟悉一下此方法的主要工作,然后我们再对其中调用到的核心方法以及扩展点注意解析一、核心方法AbstractApplicationContext.refresh直接进入源码,逐行理解@Override public void refresh() throws BeansException, IllegalStat原创 2021-08-02 15:56:20 · 13495 阅读 · 2 评论 -
spring源码解读系列(一):Bean生命周期图解
一、注意事项:本次源码解读基于Spring-Framework 5.2.9版本,可自行通过官网下载源码,本地安装好gradle后可自行编译和运行,跟随本教程走进Spring底层二、spring创建bean的整体流程三、查看入口代码通过main方法自定义测试类 ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml"); Person bean = ac.ge原创 2021-07-29 17:01:10 · 28695 阅读 · 5 评论 -
杂七杂八零碎知识点
一、反射性能测试原创 2021-07-29 12:01:52 · 128 阅读 · 0 评论 -
mysql的ACID和事务实现原理
一、ACID实现原理二、快照读与当前读三、持久化的具体实现-redo.logredolog和binlog更新流程两阶段提交四、题目分析查看mysql的隔离级别五、mvcc1.mysql中的隐藏字段2.undolog3.readviewreadview可见性分析判断六、RC和RR的区别七、mysql中锁...原创 2021-07-27 14:01:24 · 119 阅读 · 0 评论 -
JVM可视化监控---VisualVM
一、VisualVMVisualVM是Netbeans的profile子项目,在JDK6.0 update 7 中自带,能够监控线程,内存情况,查看方法的CPU时间和内存中的对象,已被GC的对象,反向查看分配的堆栈(如100个String对象分别由哪几个对象分配出来的)。如果已经正确配置classpath路径,VisualVM的启动非常简单,只需在命令行输入jvisualvm即可启动图形化界面。VisualVM不仅支持本机监控,还支持远程监控。二、安装方式jdk自带,bin目录下,双击即可打开,如原创 2021-04-21 19:52:12 · 33613 阅读 · 1 评论 -
巧用Spring中的注解
Spring Boot1.Spring Boot下控制配置执行顺序Spring Boot下对自动配置的管理对比于Spring它就是黑盒,它会根据当前容器内的情况来动态的判断自动配置类的载入与否、以及载入的顺序,所以可以说:Spring Boot的自动配置它对顺序是有强要求的。需求驱使,Spring Boot给我们提供了**@AutoConfigureBefore、@AutoConfigureAfter、@AutoConfigureOrder**(下面统称这三个注解为“三大注解”)这三个注解来帮我们解决这原创 2021-04-06 14:53:57 · 109 阅读 · 0 评论 -
优秀技术文章分享
高并发之限流-漏桶算法和令牌桶算法1.https://www.cnblogs.com/xuwc/p/9123078.html原创 2021-03-01 15:39:15 · 14643 阅读 · 0 评论 -
深入浅出CDN
一、CDN基本概念CDN 即内容分发网络(Content Delivery Network),是现有 Internet 中增加的一层新的网络架构,由遍布全国的高性能加速节点构成。这些高性能的服务节点会按照一定的缓存策略存储业务内容,当用户向该业务内容发起请求时,请求会被调度至最接近用户的服务节点,直接由服务节点快速响应,有效降低用户访问延迟,提升可用性。简单讲,CDN 就是通过将站点内容发布至遍布全球的海量加速节点,使其用户可就近获取所需内容。CDN 主要解决这么些问题:物理距离远,多次网络转发,原创 2020-12-23 17:12:01 · 938 阅读 · 0 评论 -
数据仓库初识
一、数据仓库简介数据仓库是一个面向主题的(Subject Oriented)、集成的(Integrate)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,用于支持管理决策。数据仓库是伴随着企业信息化发展起来的,在企业信息化的过程中,随着信息化工具的升级和新工具的应用,数据量变的越来越大,数据格式越来越多,决策要求越来越苛刻,数据仓库技术也在不停的发展。数据仓库的趋势:实时数据仓库以满足实时化&自动化决策需求;大数据&数据湖以支持大量&a原创 2020-12-10 16:27:54 · 224 阅读 · 0 评论