原创 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