当前位置: 首页 > news >正文

自己怎么开发网站宁波商城网站建设

自己怎么开发网站,宁波商城网站建设,手机百度2020最新版,建e网模型Spring启动流程的核心逻辑主要体现在方法AbstractApplicationContext#refresh中#xff0c;该方法没有被子类重写。 本文主要从宏观层面对其进行剖析#xff0c;从整体上感知。各执行步骤和作用按先后顺序如下表所示#xff0c;其中标红方法为核心方法#xff0c;标绿色方法…        Spring启动流程的核心逻辑主要体现在方法AbstractApplicationContext#refresh中该方法没有被子类重写。 本文主要从宏观层面对其进行剖析从整体上感知。各执行步骤和作用按先后顺序如下表所示其中标红方法为核心方法标绿色方法提供了扩展点。 方法名 主要作用 prepareRefresh() 记录容器启动时间、设置容器状态提供扩展点用于自定义添加key-value属性 obtainFreshBeanFactory() 获取一个新鲜的beanFactory实例该方法由两个子类实现 1.GenericApplicationContext很简单返回无参构造方法创建的beanFactory 2.AbstractRefreshableApplicationContext关闭当前beanFactory创建新的beanFactory体现了刷新的含义 prepareBeanFactory(beanFactory) 提前给beanFactory塞入bean实例如BeanFactoryResourceLoader等以及设置类加载器、属性编辑器等 postProcessBeanFactory(beanFactory) 此处是Spring留的扩展点目的是在beanFactory准备好后留给用户最后对beanFactory做一些设置 如对于Web应用重写后给beanFactory塞入ServletContext等单例bean invokeBeanFactoryPostProcessors(beanFactory) 调用BeanFactoryPostProcessor的实现类对BeanFactory进行后置处理如调用ConfigurationClassPostProcessor对常用注解进行解析生成BeanDefinition registerBeanPostProcessors(beanFactory) 注册Bean的后置处理器包括系统内置的和自定义的如AutowireAnnotationBeanPostProcessor、CommonAnnotationBeanPostProcessor initMessageSource() 初始化MessageSource用于支持国际化 initApplicationEventMulticaster() 初始化事件派发器用于支持事件监听 onRefresh() Spring提供的扩展点留给子类实现 registerListeners() 注册事件监听器 finishBeanFactoryInitialization(beanFactory) 实例化所有非懒加载的单例BeanSpring Bean的生命周期就是从这里开始的 finishRefresh() 完成刷新发布容器刷新完成事件等 源码及注释如下 // Spring应用上下文的核心方法它负责完成Spring容器的初始化和刷新工作Overridepublic void refresh() throws BeansException, IllegalStateException {synchronized (this.startupShutdownMonitor) {// Prepare this context for refreshing.// 准备刷新操作包括记录容器启动时间、设置容器状态、获取属性、验证必要的属性prepareRefresh();// Tell the subclass to refresh the internal bean factory.// 获取一个新鲜的BeanFactory实例该方法由子类实现// 获取新的beanFactory销毁原有beanFactory、为每个bean生成BeanDefinition等注意此处是获取新的销毁旧的这就是刷新的意义ConfigurableListableBeanFactory beanFactory obtainFreshBeanFactory();// Prepare the bean factory for use in this context.// 对BeanFactory进行一些设置例如设置类加载器、添加属性编辑器等prepareBeanFactory(beanFactory);try {// Allows post-processing of the bean factory in context subclasses.// 允许子类在BeanFactory标准初始化完成后对其进行进一步的处理// 此处是spring留的扩展点目前是在beanFactory准备好后留给用户最后对beanFactory做一些设置// 可参考GenericWebApplicationContext#postProcessBeanFactory实现postProcessBeanFactory(beanFactory);// Invoke factory processors registered as beans in the context.// 调用BeanFactoryPostProcessor的实现类对BeanFactory进行后置处理// 扫描解析的核心代码invokeBeanFactoryPostProcessors(beanFactory);// Register bean processors that intercept bean creation.// 注册BeanPostProcessor的实现类用于在Bean创建过程中进行拦截registerBeanPostProcessors(beanFactory);// Initialize message source for this context.// 初始化MessageSource,用于支持国际化initMessageSource();// Initialize event multicaster for this context.// 初始化事件派发器用于支持事件监听initApplicationEventMulticaster();// Initialize other special beans in specific context subclasses.// 留给子类实现用于在容器刷新时进行特殊的处理onRefresh();// Check for listener beans and register them.// 注册事件监听器registerListeners();// Instantiate all remaining (non-lazy-init) singletons.// 实例化所有非懒加载的单例Bean// 这一步可谓和我们开发者打交道最多我们自定义的Bean绝大多都是在这一步被初始化的包括依赖注入等等// 因此了解这一步能让我们更深入的了解Spring是怎么管理我们的Bean的生命周期以及依赖关系的finishBeanFactoryInitialization(beanFactory);// Last step: publish corresponding event.// 完成刷新操作包括发布容器刷新完成事件等finishRefresh();}catch (BeansException ex) {if (logger.isWarnEnabled()) {logger.warn(Exception encountered during context initialization - cancelling refresh attempt: ex);}// Destroy already created singletons to avoid dangling resources.destroyBeans();// Reset active flag.// 如果在刷新过程中出现异常会执行该方法取消操作并销毁已经创建的单例Bean最后会重置Spring核心中的一些缓存cancelRefresh(ex);// Propagate exception to caller.throw ex;}finally {// Reset common introspection caches in Springs core, since we// might not ever need metadata for singleton beans anymore...resetCommonCaches();}}}
http://www.yutouwan.com/news/444687/

相关文章:

  • 网站开发工程师岗位说明书appui设计公司
  • 如何查询网站icp备案做字网站
  • 网站模板下平面设计公司广告语
  • 学做网站难不难有哪些做平面设计好的网站有哪些内容
  • 定州建设厅网站个人在湖北建设厅网站申请强制注销
  • 学互联网做网站是什么合肥建设银行招聘网站
  • 蚌埠市建设银行网站怎么看商标有没有注册
  • wordpress 留言板展示湖南正规seo优化
  • 网站建设方案 前台 后台seo新手快速入门
  • 域名过期网站还有用吗网站访问量js
  • 网站推广方案注意事项?软件工程好找工作吗
  • 合肥市建设厅官方网站浙江华企 做网站怎么样
  • 广元市建设局官方网站长沙百度推广开户
  • 北京免费建站公益广告
  • 网站科技感颜色在线识图
  • 网站建设大作业成品免费观看网站
  • asp 网站建设教程免费网站建设方案
  • 长沙网站制作公司推荐政务网站风格
  • 湖南网站建设网络公司wordpress绑定手机版
  • 自己做彩票网站合法吗贵州省房屋和城市建设厅官方网站
  • 企业网站设计与实现网站建设 电子商务 品牌首选IDC
  • 手机网站和电脑网站的区别一级造价工程师注册管理系统
  • 做网站第三方外贸企业邮箱哪家好
  • 外贸网站建设推广方案企业网络规划与设计方案
  • 2017年免费建网站翰诺网站建设
  • c 网站开发环境谷歌绘制的网站
  • 杭州正晖建设工程有限公司网站百度关键词优化软件如何
  • 网站是什么时候开始的下载网站后怎么做
  • 网站建设战略规划的方法福州微信网站
  • 住房城乡建设厅网站iis2008如何做网站