- 浏览: 50444 次
- 性别:
- 来自: 南京
文章分类
最新评论
context=XmlWebApplicationContext
org.springframework.web.context.support
Class XmlWebApplicationContext
java.lang.Object
org.springframework.core.io.DefaultResourceLoader
org.springframework.context.support.AbstractApplicationContext
org.springframework.context.support.AbstractRefreshableApplicationContext
org.springframework.context.support.AbstractRefreshableConfigApplicationContext
org.springframework.web.context.support.AbstractRefreshableWebApplicationContext
org.springframework.web.context.support.XmlWebApplicationContext
All Implemented Interfaces:
Closeable, AutoCloseable, Aware, BeanFactory, BeanNameAware, DisposableBean, HierarchicalBeanFactory, InitializingBean, ListableBeanFactory, ApplicationContext, ApplicationEventPublisher, ConfigurableApplicationContext, Lifecycle, MessageSource, EnvironmentCapable, ResourceLoader, ResourcePatternResolver, ThemeSource, ConfigurableWebApplicationContext, WebApplicationContext
abstractApplicationContext#refresh:
要了解这些方法要做什么,除了代码,最好的方式就是看类或方法上的英文注释
为什么父类中方法互相调用,如果子类重写了会调用子类的方法?
spring环境的抽象-environment
spring为什么既实现了某些接口,又将其作为属性?
spring只是对beanFactory messageSource的封装,表明其有怎样的功能及特性。spring还是调用beanFactory或者messageSource等实现其功能
一般直接在eclipse中立即关闭tomcat有什么影响,会不会有些正在消费的消息未被处理?
参考:
https://yd.baidu.com/view/dc2aa92a9ec3d5bbfc0a741e?cn=6-144,6-708&pn=3
http://blog.csdn.net/szwandcj/article/details/50762990
Spring3.1新属性管理API:PropertySource、Environment、Profile
http://jinnianshilongnian.iteye.com/blog/2000183
Spring中Bean初始化实例【重要】
http://uule.iteye.com/blog/2094609
Spring8:一些常用的Spring Bean扩展接口
http://www.cnblogs.com/xrq730/p/5721366.html
【Spring学习25】容器级启动和关闭回调
http://blog.csdn.net/soonfly/article/details/69916806
5. IoC 容器
http://spring.cndocs.tk/beans.html
http://stackoverflow.com/questions/3924727/managementfactory-getplatformmbeanserver-vs-mbeanserverfactory-creatembeanserv
http://stackoverflow.com/questions/13551408/how-does-lifecycle-interface-work-in-spring-what-are-top-level-singleton-beans
org.springframework.web.context.support
Class XmlWebApplicationContext
java.lang.Object
org.springframework.core.io.DefaultResourceLoader
org.springframework.context.support.AbstractApplicationContext
org.springframework.context.support.AbstractRefreshableApplicationContext
org.springframework.context.support.AbstractRefreshableConfigApplicationContext
org.springframework.web.context.support.AbstractRefreshableWebApplicationContext
org.springframework.web.context.support.XmlWebApplicationContext
All Implemented Interfaces:
Closeable, AutoCloseable, Aware, BeanFactory, BeanNameAware, DisposableBean, HierarchicalBeanFactory, InitializingBean, ListableBeanFactory, ApplicationContext, ApplicationEventPublisher, ConfigurableApplicationContext, Lifecycle, MessageSource, EnvironmentCapable, ResourceLoader, ResourcePatternResolver, ThemeSource, ConfigurableWebApplicationContext, WebApplicationContext
abstractApplicationContext#refresh:
public void refresh() throws BeansException, IllegalStateException { synchronized (this.startupShutdownMonitor) { //这里主要是标示spring为激活状态及开始时间,初始化环境部分在进入refresh()方法之前,大部分已完成 //初始化context的环境environment(environment抽象表示spring环境) //主要有systemEnvironment,systemProperties,servletContext,servletConfig,jndi环境等 //对应于web.xml配置的<context-param><init-param>等标签 //环境实际类为StandardServletEnvironment //environment抽象环境的api从spring3.1开始加入 // Prepare this context for refreshing. prepareRefresh(); //注册容器DefaultListableBeanFactory.beanDefinitionMap //<spring源码学习系列2.1-从xml到document> //<spring源码学习系列2.2-从document到beanDefinition> // Tell the subclass to refresh the internal bean factory. ConfigurableListableBeanFactory beanFactory = obtainFreshBeanFactory(); //beanFactory设置属性,添加后处理器,添加自动装配忽略的接口,自动装配指定值,注册单例(如:environment) //beanFactory自身是不是在singletonObjects里? // Prepare the bean factory for use in this context. prepareBeanFactory(beanFactory); try { //beanFactory添加后置处理器,添加自动装配忽略的接口,注册bean范围,为自动装配指定值,注册单例(如:servletContext,servletConfig,contextAttributes) //跟prepareBeanFactory比较像,对beanFactory进行填充。不过此方法根据英文注释子类覆盖用的,自定义的子类可以覆盖改方法进行一些操作,而上面的prepareBeanFactory是比较通用的。在此环境下是AbstractRefreshableWebApplicationContext重写了postProcessBeanFactory // Allows post-processing of the bean factory in context subclasses. postProcessBeanFactory(beanFactory); //实例化BeanFactoryPostProcessor(getBean)并调用 // Invoke factory processors registered as beans in the context. invokeBeanFactoryPostProcessors(beanFactory); //实例化BeanPostProcessor(getBean)并注册beanPostProcessors // Register bean processors that intercept bean creation. registerBeanPostProcessors(beanFactory); //实例化messageSource(getBean),messageSource这里是context的一个属性 // Initialize message source for this context. initMessageSource(); //实例化applicationEventMulticaster(getBean),applicationEventMulticaster这里是context的一个属性 // Initialize event multicaster for this context. initApplicationEventMulticaster(); //提供了子类实例化其他特殊类,如themeSource。配合<spring:theme>标签使用 // Initialize other special beans in specific context subclasses. onRefresh(); //实例化并注册监听器 //spring的事件也实现了javaapi-EventObject //为什么要放在这个位置,而不是initApplicationEventMulticaster()的下面?它们的关联性更大 // Check for listener beans and register them. registerListeners(); //实例化其他非懒加载的单例bean //<spring源码学习系列2.3-从beanDefinition到instance> // Instantiate all remaining (non-lazy-init) singletons. finishBeanFactoryInitialization(beanFactory); //实例化lifecycleProcessor,并回调smartLifeCycle.onRefresh() //发布刷新完成事件 //注册MBeanServer-JConsole looks at the beans on that server // Last step: publish corresponding event. finishRefresh(); } catch (BeansException ex) { if (logger.isWarnEnabled()) { logger.warn("Exception encountered during context initialization - " + "cancelling refresh attempt: " + ex); } //清除缓存,回调DisposableBean.destory() // Destroy already created singletons to avoid dangling resources. destroyBeans(); // Reset 'active' flag. cancelRefresh(ex); // Propagate exception to caller. throw ex; } } }
要了解这些方法要做什么,除了代码,最好的方式就是看类或方法上的英文注释
为什么父类中方法互相调用,如果子类重写了会调用子类的方法?
spring环境的抽象-environment
spring为什么既实现了某些接口,又将其作为属性?
spring只是对beanFactory messageSource的封装,表明其有怎样的功能及特性。spring还是调用beanFactory或者messageSource等实现其功能
一般直接在eclipse中立即关闭tomcat有什么影响,会不会有些正在消费的消息未被处理?
参考:
https://yd.baidu.com/view/dc2aa92a9ec3d5bbfc0a741e?cn=6-144,6-708&pn=3
http://blog.csdn.net/szwandcj/article/details/50762990
Spring3.1新属性管理API:PropertySource、Environment、Profile
http://jinnianshilongnian.iteye.com/blog/2000183
Spring中Bean初始化实例【重要】
http://uule.iteye.com/blog/2094609
Spring8:一些常用的Spring Bean扩展接口
http://www.cnblogs.com/xrq730/p/5721366.html
【Spring学习25】容器级启动和关闭回调
http://blog.csdn.net/soonfly/article/details/69916806
5. IoC 容器
http://spring.cndocs.tk/beans.html
http://stackoverflow.com/questions/3924727/managementfactory-getplatformmbeanserver-vs-mbeanserverfactory-creatembeanserv
http://stackoverflow.com/questions/13551408/how-does-lifecycle-interface-work-in-spring-what-are-top-level-singleton-beans
发表评论
-
spring疑难解惑-循环依赖的解决
2020-06-17 23:27 542AbstractAutowireCapableBeanFact ... -
spring容器
2019-07-14 08:47 305private final ServletContainer ... -
spring容器
2019-07-13 23:35 0spring容器与springmvc容器 73 ... -
spring源码学习系列2.6-spring ioc原理-codes
2019-03-05 22:56 488web.xml <listener> < ... -
spring源码学习系列3.4-spring mvc原理-codes
2019-01-21 22:46 297本篇章从核心类角度解读springmvc的原理 web.xm ... -
spring源码学习系列4.2-spring aop原理-codes
2018-12-04 22:29 562jdk: Proxy InvocationHandler ... -
spring源码学习系列4.1-spring实现对ibatis的事务管理
2018-09-17 15:44 579事务由spring管理,可以理解为由spring管理数据库连接 ... -
spring源码学习系列4-3种常用的自动代理创建器
2018-09-02 15:48 5713种自动代理器是 AnnotationAwareAspectJ ... -
spring源码学习系列1.2-spring事务代理深入分析2
2018-05-27 19:46 452提示: BeanPostProcessor AopUtils ... -
spring源码学习系列2.5-ApplicationContext初始化-设计模式
2018-05-08 15:17 521ApplicationContext容器的初始化可以通过模板方 ... -
spring源码学习系列3.3-DispatcherServlet初始化-设计模式
2018-05-07 11:12 623springmvc的核心是DispatcherServlet ... -
封装spring-security
2018-01-23 19:33 519github地址: https://github.com/ne ... -
eclipse导入spring源码
2018-05-12 07:20 981spring在git上的项目时gradle管理jar包的,所以 ... -
spring源码学习系列3.2.3-异常页面拦截机制
2017-07-29 19:07 768前序:本文的意义在于了解 tomcat处理异常 请求访问 ... -
spring源码学习系列3.2.2-How to bind String to Date
2017-07-17 12:40 599springmvc开发中,经常需将界面日期数据(String) ... -
spring源码学习系列3.2.1-command对象的绑定
2017-05-28 12:00 983在<spring源码学习系列3.2-handlerAda ... -
spring源码学习系列3.2-handlerAdapter执行
2017-05-28 12:01 410DispatcherServlet#doDispatch中调用 ... -
spring源码学习系列3.1-handlerMapping初始化
2017-05-28 11:56 703SimpleUrlHandlerMapping的继承体系 or ... -
spring源码学习系列2.4-finishRefresh会做什么
2017-05-06 16:36 579spring容器初始化完成后,调用finishRresh 该 ... -
spring源码学习系列3-springmvc原理
2017-05-28 11:56 458问题: springmvc是如何控 ...
相关推荐
23 Spring源码阅读 refresh-invokeBeanFactoryPostProcessor-2.mp4 24 Srping源码阅读refresh-invokeBeanFacotryPostProcessor-3.mp4 25 Spring源码阅读refresh-registerBeanPostProcessor.mp4 26 Spring源码阅读...
23 Spring源码阅读 refresh-invokeBeanFactoryPostProcessor-2.mp4 24 Srping源码阅读refresh-invokeBeanFacotryPostProcessor-3.mp4 25 Spring源码阅读refresh-registerBeanPostProcessor.mp4 26 Spring源码阅读...
23 Spring源码阅读 refresh-invokeBeanFactoryPostProcessor-2.mp4 24 Srping源码阅读refresh-invokeBeanFacotryPostProcessor-3.mp4 25 Spring源码阅读refresh-registerBeanPostProcessor.mp4 26 Spring源码阅读...
23 Spring源码阅读 refresh-invokeBeanFactoryPostProcessor-2.mp4 24 Srping源码阅读refresh-invokeBeanFacotryPostProcessor-3.mp4 25 Spring源码阅读refresh-registerBeanPostProcessor.mp4 26 Spring源码阅读...
`refresh` 方法是Spring框架中的一个核心方法,它主要用于初始化整个应用上下文(ApplicationContext),包括加载配置文件、创建Bean实例等重要步骤。本文将深入剖析Spring框架中`refresh`方法的具体实现流程,以及...
通过研读Spring Framework 5.3.3的源码,开发者可以深入理解IoC和AOP的设计模式,学习如何构建高度模块化和可扩展的系统,同时也能掌握Web开发的最佳实践,提升自身编程和架构设计能力。 总结,Spring Framework ...
spring-cloud-config-svn-refresh:配置中心svn版本示例,客户端refresh版本示例 spring-cloud-config-eureka:配置中心服务化和高可用代码示例 spring-cloud-config-eureka-bus:配置中心和消息总线示例(配置中心...
在Android应用开发中,...3. 初始化和设置:在Activity或Fragment的onCreate()方法中,找到布局中的UltraPullToRefreshLayout并进行初始化,设置相应的回调监听器,以便在用户执行下拉刷新或上拉加载时调用。 ```java ...
在Spring框架中,Bean的创建和初始化是IoC(Inversion of Control)容器的核心功能,这一过程涉及到多个步骤。以下是对Spring Bean创建初始化流程的详细解释: 1. **初始化ApplicationContext**: 开始时,通过`...
本项目“spring-security-oauth2-authorization-server”将带你深入理解如何利用Spring Security OAuth2构建一个授权服务器,以保护你的API并提供安全的访问控制。 OAuth2是一种开放标准,用于授权第三方应用访问...
- `obtainFreshBeanFactory()`创建并初始化BeanDefinition对象,这是Spring容器的核心。 - 创建`XmlBeanDefinitionReader`读取配置文件。 - 把XML文件解析为`Document`对象。 - `BeanDefinitionDocumentReader`...
spring-boot-db初始化测试 测试用例,显示未初始化数据库以进行测试的错误 该项目包含一个测试,该测试查询内存中的h2数据库以确保其不为空 $ mvn test ... 2014-10-14 10:10:21.409 WARN 3435 --- [ main] o.s.b.a....
学习系列: - [springcloud(一):大话Spring Cloud](http://www.ityouknow.com/springcloud/2017/05/01/simple-springcloud.html) - [springcloud(二):注册中心Eureka]...
本次为spring解析配置文件中spring.xml的过程,并且根据解析的spring.xml中的节点加载bean到map中。
5. 初始化和监听:在Activity或Fragment的onCreate()方法中,找到对应的布局视图,初始化UltraPullToRefreshLayout,并设置刷新监听器。监听器回调方法包括onRefresh(),在其中执行实际的刷新操作。 三、使用示例及...
要使用 iScroll-5-pull-to-refresh-and-infinite 示例,首先需要引入 iScroll 的库文件,然后初始化 iScroll 实例,并设置相应的配置。配置项中,`pullToRefresh` 和 `infinite` 分别控制下拉刷新和无限滚动的启用。...
"mina-pull-down-refresh-master"提供的方案通过精细化的事件处理和状态管理,实现了两者之间的无缝配合,使得下拉刷新功能能够顺畅、准确地工作,为开发者提供了有价值的参考。在实际应用中,开发者可以根据具体...
Spring Bean 加载过程是 Spring 框架中最核心的部分之一,涉及到 ApplicationContext 的初始化、Bean 的加载和注册等过程。在 Spring Boot 应用程序中,SpringApplication 负责加载和管理 Bean。 SpringApplication...
通过跟踪`refresh()`方法,可以了解如何加载和解析配置文件,以及如何初始化Bean。 - `AOP`相关的类,如`AbstractAdvisingBeanPostProcessor`和`ProxyCreator`,揭示了Spring如何通过代理模式实现AOP功能。 通过...
5. **初始化BeanFactory**:调用`BeanFactory`的`refresh()`方法,完成整个IOC容器的初始化过程。这包括Bean定义信息的注册、Bean的实例化、依赖注入、初始化等操作。 #### FileSystemXmlApplicationContext与...