1. 血案由来 近期我在为Lazada卖家中心做一个自助注册的项目,其中的shop name校验规则较为复杂,要求:1. 英文字母大小写2. 数字3. 越南文4. 一些特殊字符,如“&”,“-”,“_”等看到这个要求的时候,自然而然地想到了正则表达式.于是就有了下面的表达式(写的比较龊): ^([A-Za-z0-9._()&'\- ]|[aAàÀảẢãÃáÁạẠăĂằẰẳẲẵẴắẮặẶâÂầẦẩẨẫẪấẤậẬbBcCdDđĐeEèÈẻẺẽẼéÉẹẸêÊềỀểỂễỄếẾệỆfFgGhHiIì…
补充一下ServiceProvider的内容 可能上一篇文章DOTNET CORE源码分析之IServiceProvider.ServiceProvider.IServiceProviderEngine.ServiceProviderEngine和ServiceProviderEngineScope 中还没有关联上ServiceProvider和ServiceCollection就直接通过GetService获取了值,这样不科学啊.其实是有关联的,请看一下上篇文章同样存在的一个代码段: inte…
定义 IOC(Inversion of Control  控制反转),DIP(Dependency Inverson Principle 依懒倒置)都属于设计程序时指导原则,并没有具体的实现.比较常用的五大原则SOLID(SRP单一职责.OCP开闭原则.LSP里氏转换原则.IOC.DIP) DI(Dependency Injection 依懒注入)属于模式,提供了一种具体的处理程序中对应情况的实现 IoC容器  属于一种框架  例如 Unity StructureMap Castle Winds…
前言:在[spring源码分析]IOC容器初始化(一)文末中已经提出loadBeanDefinitions(DefaultListableBeanFactory)的重要性,本文将以此为切入点继续分析. AbstractXmlApplicationContext#loadBeanDefinitions(DefaultListableBeanFactory) protected void loadBeanDefinitions(DefaultListableBeanFactory beanFacto…
声明 1.建议先阅读<Spring源码分析专题 -- 阅读指引> 2.强烈建议阅读过程中要参照调用过程图,每篇都有其对应的调用过程图 3.写文不易,转载请标明出处 前言 关于 IOC 容器启动的内容很多,我将分上中下三篇讲解,其中上篇相对简单,中篇最为复杂,请大家耐心阅读. 上篇 - 主要是相关基础说明和找到分析入口 中篇 - 讲解定位.加载.注册的过程(实例化在依赖注入的章节再讲) 下篇 - 细节补充 调用过程图 由于篇幅问题,此处我只放个缩略图,高清大图请点击链接☞ IOC容器启动调用过程…
一个普通的 Zepto 源码分析(三) - event 模块 普通的路人,普通地瞧.分析时使用的是目前最新 1.2.0 版本. Zepto 可以由许多模块组成,默认包含的模块有 zepto 核心模块,以及 event . ajax . form . ie ,其中 event 模块也是比较重要的模块之一,我们可以借助它提供的方法实现事件的监听.自定义事件的派发等.最重要的是,做了一些事件的兼容,简化了我们的编码. event 模块 这个模块代码行数要比 ajax 的少.还是老套路,对函数调用关系做…
概述: Spring 对于Java 开发来说,以及算得上非常基础并且核心的框架了,在有一定开发经验后,阅读源码能更好的提高我们的编码能力并且让我们对其更加理解.俗话说知己知彼,百战不殆.当你对Spring 掌握熟透之后,也就没什么能过阻拦你在开发路上前进了. IOC 总体来说有两处地方最重要,一个是创建Bean容器,一个是初始化.在本文中,主要为大家讲解了 IOC Bean 容器创建过程.后续将会补上初始化部分的知识. 为了保持文章的严谨性,如果读者发现我哪里说错了请一定不吝指出,非常希望可以听…
前言:在[spring源码分析]IOC容器初始化(二)中已经得到了XML配置文件的Document实例,下面分析bean的注册过程. XmlBeanDefinitionReader#registerBeanDefinitions(Document doc, Resource resource) public int registerBeanDefinitions(Document doc, Resource resource) throws BeanDefinitionStoreExceptio…
前言:在[spring源码分析]IOC容器初始化(六)中分析了从单例缓存中加载bean对象,由于篇幅原因其核心函数 FactoryBeanRegistrySupport#getObjectFromFactoryBean并未进行详细分析,本文将继续对bean加载过程的分析. FactoryBeanRegistrySupport#getObjectFromFactoryBean protected Object getObjectFromFactoryBean(FactoryBean<?> fac…
1. 简介 本文,我们来看一下 Spring 是如何解决循环依赖问题的.在本篇文章中,我会首先向大家介绍一下什么是循环依赖.然后,进入源码分析阶段.为了更好的说明 Spring 解决循环依赖的办法,我将会从获取 bean 的方法getBean(String)开始,把整个调用过程梳理一遍.梳理完后,再来详细分析源码.通过这几步的讲解,希望让大家能够弄懂什么是循环依赖,以及如何解循环依赖. 循环依赖相关的源码本身不是很复杂,不过这里要先介绍大量的前置知识.不然这些源码看起来很简单,但读起来可能却也不…