原创 SpringMVC源碼解析一:HandlerMapping初始化

initHandlerMappings()方法初始化有兩種方式: 1.setApplicationContext() 2.afterPropertiesSet()   1.setApplicationContext()實現方式如下: 首先

原创 AOP源碼分析三:pointcut的配置說明

aop配置中有如下一行:   <aop:pointcut expression="execution(* com.aop.service..*(..))"  其中expression="execution(* com.aop.servic

原创 Spring的IOC容器初始化源碼分析四:載入註解Bean

refresh方法中,調用註解解析bean的loadBeanDefinitions方法如下: public class AnnotationConfigWebApplicationContext extends AbstractRefr

原创 AOP源碼分析一:xml文件解析

AOP的xml文件配置如下: <aop:aspectj-autoproxy proxy-target-class="true"/> <bean id="xmlAspect" class="com.aop.aspect.XmlAspect

原创 AOP源碼分析二:創建AOP代理

aop代理的創建時在初始化bean之後,先來看下bean初始化方法:initializeBean AbstractAutowireCapableBeanFactory的initializeBean方法進行初始化: //初始容器創建的Be

原创 Spring的IOC容器初始化源碼分析三:refresh(02)

3. prepareBeanFactory(beanFactory); //爲BeanFactory配置容器特性,例如類加載器、事件處理器等 // 對beanFactory做一些設置,例如類加載器、SPEL解析器、指定bean的

原创 Spring的IOC容器初始化源碼分析一:super(parent)

IOC 容器的初始化包括 BeanDefinition 的 Resource 定位、載入和註冊這三個基本的過程。  以 ApplicationContext 爲例講解,ApplicationContext 系列容器也許是我們最熟悉的,因爲

原创 Spring的IOC容器初始化源碼分析三:refresh(01)

SpringIOC 容器對 Bean 定義資源的載入是從 refresh()函數開始的,refresh()是一個模板方法, refresh()方法的作用是:在創建 IOC 容器前,如果已經有容器存在,則需要把已有的容器銷燬和關閉, 以保證

原创 Spring的IOC容器初始化源碼分析三:refresh(03)

11.finishBeanFactoryInitialization finishBeanFactoryInitialization方法做了兩件事: 1.beanFactory對象的初始化; 2.bean配置文件中配置的那些單例的b

原创 Spring的IOC容器初始化源碼分析二:setConfigLocations

設置本地的配置信息,創建環境對象ConfigurableEnvironment 、處理ClassPathXmlApplicationContext傳入的字符串中的佔位符;         setConfigLocations(config

原创 SpringMVC源碼解析三:RequestParamMethodArgumentResolver

supportsParameter(parameter)這裏有一個常用的解析器:       RequestParamMethodArgumentResolver類中: 主要用來解析@RequestParam 註解的參數 public

原创 SpringMVC源碼解析二:請求處理過程4

第四步的處理過程: // 4.實際的處理器處理請求,返回結果視圖對象  mv = ha.handle(processedRequest, response, mappedHandler.getHandler()); ModelAndVi

原创 SpringMVC源碼解析二:請求處理過程5

// 5.結果視圖對象的處理 applyDefaultViewName(processedRequest, mv); mappedHandler.applyPostHandle(processedRequest, response, m

原创 SpringMVC源碼解析二:請求處理過程2

第2步處理方法: //遍歷所有的映射器,直到找到能夠配對該請求的一個映射器, // 在映射器內部配對到對應的Handler,最終生成HandlerExecutionChain對象並返回 protected HandlerExecut

原创 SpringMVC源碼解析二:請求處理過程3

第三步的處理過程:     //3. 獲取處理request的處理器適配器handler adapter     HandlerAdapter ha = getHandlerAdapter(mappedHandler.getHandler