
spring
文章平均质量分 87
spring 源码
东方鲤鱼
业精于勤荒于嬉
展开
-
【spring】源码-spring 容器启动过程之finishRefresh()方法(十一)
目录finishRefresh() initLifecycleProcessor() onRefresh()finishRefresh() protected void finishRefresh() { // Clear context-level resource caches (such as ASM metadata from scanning). clearResourceCaches(); // Initialize lifecycle ...原创 2021-03-31 14:55:40 · 200 阅读 · 0 评论 -
【spring】源码-spring 容器启动过程之finishBeanFactoryInitialization()方法(十)
finishBeanFactoryInitialization(beanFactory) 已经完成了BeanFactory对象初始化、xml配置文件解析成BeanDefinition、BeanPostProcessor初始化与注册等操作,//对配置了lazy-init属性的Bean进行预实例化处理 protected void finishBeanFactoryInitialization(ConfigurableListableBeanFactory beanFactory) { //..原创 2021-03-30 18:19:57 · 496 阅读 · 2 评论 -
【spring】源码-spring 容器启动过程之初始化(九)
initMessageSource()为 应用上下文初始化信息资源;即初始化 MessageSource 对象; protected void initMessageSource() { // 获取bean 工厂,默认DefaultListableBeanFactory ConfigurableListableBeanFactory beanFactory = getBeanFactory(); //判断容器中是否已经存在id是messageSource的bean 对象 if (b原创 2021-03-29 14:21:02 · 311 阅读 · 0 评论 -
【spring】源码-spring 容器启动过程之registerBeanPostProcessors()方法(八)
registerBeanPostProcessors(beanFactory)作用:经过invokeBeanFactoryPostProcessors(beanFactory)注册用于拦截 bean 定义的 bean 处理器,会添加到 beanFactory 的 alreadyCreated 属性中原创 2021-03-29 10:41:04 · 239 阅读 · 0 评论 -
【spring】源码-spring 容器启动过程之invokeBeanFactoryPostProcessors() 方法(七)
目录invokeBeanFactoryPostProcessors()1.getBeanNamesForType() 方法2.sortPostProcessors(currentRegistryProcessors, beanFactory) 方法3.invokeBeanDefinitionRegistryPostProcessors(currentRegistryProcessors, registry)方法 processConfigBeanDefintions()方法Conf.原创 2021-03-26 18:09:31 · 202 阅读 · 0 评论 -
【spring】源码-spring 容器启动过程之beanFactpostProcessBeanFactoryory() 方法(六)
beanFactory 经过前面标准的初始化之后,在这里 可以 更改 应用上下文 的 内置 bean 工厂的配置,针对不同 的 ApplicationContext 实现类的配置修改;protected void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) { }postProcessBeanFactory 方法 是个抽象模板方法,由不同子类重写实现功能,这里调用的是 AbstractRefresha..原创 2021-03-25 11:16:42 · 281 阅读 · 0 评论 -
【spring】源码-spring 容器启动过程之prepareBeanFactory() 方法(五)
经过前四篇讲解,我们的ioc bean fanctory 已经生成;但是,bean fanctory 中在初始化时只 配置了部分的 ignoredDependencyInterfaces 和 部分的 beanDefinitionMap 属性,接下是对bean factory 的初始化进一步设置,先看prepareBeanFactory(beanFactory) 方法;该方法主要是给bean fanctory 上下设置标准上下文,还有 类加载器 和 后处理器(post-processors)...原创 2021-03-24 18:30:07 · 155 阅读 · 0 评论 -
【spring】源码-spring 容器启动过程之 AnnotationConfigWebApplicationContext (四)
1原创 2021-03-19 15:29:32 · 2121 阅读 · 0 评论 -
【spring】源码-spring 容器启动过程之 AbstractXmlApplicationContext (三)
经过一系列准备工作 ,都是为了接下来refresh()方法的实现,首先代码如下,我将分别阅读每个方法;public void refresh() throws BeansException, IllegalStateException { //startupShutdownMonitor 同步锁 synchronized (this.startupShutdownMonitor) { // Prepare this context for refreshing. //1、...原创 2021-03-16 10:49:46 · 517 阅读 · 0 评论 -
【spring】源码-spring 容器启动过程之 initWebApplicationContext 方法分析(二)
方法 initWebApplicationContext() 位于contextLoader 类中public WebApplicationContext initWebApplicationContext(ServletContext servletContext) { // 先判断当前servlet 中是否存ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE根容器标识 if (servletContext.getAttribute(WebApplicationC.原创 2021-03-11 14:54:12 · 1272 阅读 · 0 评论 -
【spring】源码-spring 容器的初始化过程- 基本概念(一)
spring 2003兴起的javaee 一站式开源框架,Spring框架分为多个模块:有core,beans,context,web,web mvc,orm,dao,应用程序可以选择所需的模块。其中基本的模块是 context,core,beans。除此之外,Spring框架为不同的应用程序体系结构提供了基础支持,包括消息传递,事务性数据和持久性以及Web。它还包括基于Servlet的Spring MVC Web框架,以及并行的Spring WebFlux反应式Web框架。 当...原创 2021-03-10 11:35:26 · 319 阅读 · 0 评论