文章内容 话说,经过各种各样复杂的我们不知道的内部处理,非托管代码正式开始调用ISPAIRuntime的ProcessRequest方法了(ISPAIRuntime继承了IISPAIRuntime接口,该接口可以和COM进行交互,并且暴露了ProcessRequest接口方法).至于为什么要调用这个方法,大叔也不太清楚,找不到微软相关的资料哦.但大叔确定该方法就是我们进入HttpRuntime的正式大门,接着看吧. public int ProcessRequest(IntPtr ecb, in…
文章内容 从上章文章都知道,asp.net是运行在HttpRuntime里的,但是从CLR如何进入HttpRuntime的,可能大家都不太清晰.本章节就是通过深入分析.Net4的源码来展示其中的重要步骤.请先看下图: 首先,CLR在初始化加载的时候,会加载一个非常重要的类AppManagerAppDomainFactory,这个类是做什么用的呢?首先这个类继承了IAppManagerAppDomainFactory接口,而这个接口是是有个可供COM调用的Create方法,代码如下: [ComIm…
在对IoC有了初步的认知后,我们开始对IOC的实现原理进行深入理解.本文将帮助你站在设计者的角度去看IOC最顶层的结构设计.@pdai Spring框架系列(6) - Spring IOC实现原理详解之IOC体系结构设计 站在设计者的角度考虑设计IOC容器 Spring IoC的体系结构设计 BeanFactory和BeanRegistry:IOC容器功能规范和Bean的注册 BeanFactory定义了IOC 容器基本功能规范? BeanFactory为何要定义这么多层次的接口?定义了哪些接口…
上文,我们看了IOC设计要点和设计结构:紧接着这篇,我们可以看下源码的实现了:Spring如何实现将资源配置(以xml配置为例)通过加载,解析,生成BeanDefination并注册到IoC容器中的.@pdai Spring框架系列(7) - Spring IOC实现原理详解之IOC初始化流程 引入 如何将Bean从XML配置中解析后放到IoC容器中的? 初始化的入口 设置资源解析器和环境 设置配置路径 初始化的主体流程 初始化BeanFactory之obtainFreshBeanFactory…
上文,我们看了IOC设计要点和设计结构:以及Spring如何实现将资源配置(以xml配置为例)通过加载,解析,生成BeanDefination并注册到IoC容器中的:容器中存放的是Bean的定义即BeanDefinition放到beanDefinitionMap中,本质上是一个ConcurrentHashMap<String, Object>:并且BeanDefinition接口中包含了这个类的Class信息以及是否是单例等.那么如何从BeanDefinition中实例化Bean对象呢,这是本…
前文,我们分析了Spring IOC的初始化过程和Bean的生命周期等,而Spring AOP也是基于IOC的Bean加载来实现的.本文主要介绍Spring AOP原理解析的切面实现过程(将切面类的所有切面方法根据使用的注解生成对应Advice,并将Advice连同切入点匹配器和切面类等信息一并封装到Advisor,为后续交给代理增强实现做准备的过程).@pdai Spring框架系列(9) - Spring AOP实现原理详解之AOP切面的实现 引入 aop配置标签的解析 config配置标签…
上文我们介绍了Spring AOP原理解析的切面实现过程(将切面类的所有切面方法根据使用的注解生成对应Advice,并将Advice连同切入点匹配器和切面类等信息一并封装到Advisor).本文在此基础上继续介绍,代理(cglib代理和JDK代理)的创建过程.@pdai Spring框架系列(10) - Spring AOP实现原理详解之AOP代理的创建 引入 代理的创建 获取所有的Advisor 创建代理的入口方法 依据条件创建代理(jdk或cglib) 更多文章 引入 前文主要Spring…
我们在前文中已经介绍了SpringAOP的切面实现和创建动态代理的过程,那么动态代理是如何工作的呢?本文主要介绍Cglib动态代理的案例和SpringAOP实现的原理.@pdai Spring框架系列(11) - Spring AOP实现原理详解之Cglib代理实现 引入 动态代理要解决什么问题? 什么是代理? 什么是动态代理? 什么是Cglib? SpringAOP和Cglib是什么关系? Cglib代理的案例 pom包依赖 定义实体 被代理的类 cglib代理 使用代理 简单测试 Cglib…
上文我们学习了SpringAOP Cglib动态代理的实现,本文主要是SpringAOP JDK动态代理的案例和实现部分.@pdai Spring框架系列(12) - Spring AOP实现原理详解之JDK代理实现 引入 什么是JDK代理? JDK代理的案例 不需要maven依赖 定义实体 被代理的类和接口 JDK代理类 使用代理 简单测试 JDK代理的流程 ProxyGenerator生成代码 从生成的Proxy代码看执行流程 SpringAOP中JDK代理的实现 SpringAOP Jdk…
文章内容 上篇文章,我们分析如何动态注册HttpModule的实现,本篇我们来分析一下通过上篇代码原理实现的WebActivator类库,WebActivator提供了3种功能,允许我们分别在HttpApplication初始化之前,之后以及ShutDown的时候分别执行指定的代码,示例如下: [assembly: WebActivator.PreApplicationStartMethod(typeof(A.InitClass1), "PreStart")] [assembly: W…