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

网站结构模板网站开发一般学多久

网站结构模板,网站开发一般学多久,忻州推广型网站建设,网络平台推广运营培训Spring容器的启动过程 Spring 在初始化过程中有二个非常重要的步骤#xff0c;容器的初始化与刷新。 初始化流程 如果想生成 bean 对象#xff0c;那么就需要一个 beanFactory 工厂#xff08;DefaultListableBeanFactory#xff09;如果想让加了特定注解#xff08;如 …Spring容器的启动过程 Spring 在初始化过程中有二个非常重要的步骤容器的初始化与刷新。 初始化流程 如果想生成 bean 对象那么就需要一个 beanFactory 工厂DefaultListableBeanFactory如果想让加了特定注解如 Service、Repository的类进行读取转化成 BeanDefinition 对象BeanDefinition存储了 bean 对象的所有特征信息如是否单例是否懒加载factoryBeanName 等那么就需要一个注解配置读取器AnnotatedBeanDefinitionReader如果想对用户指定的包目录进行扫描查找 bean 对象就需要一个路径扫描器ClassPathBeanDefinitionScanner 在加载配置文件时Spring会创建一个BeanFactory工厂然后使用配置信息填充该工厂的BeanDefinition根据这些信息创建相关的Bean实例。在创建Bean实例时Spring采用了延迟初始化的策略即只有当需要使用Bean实例时才会进行初始化。 注册BeanDefinition的流程主要包括解析配置文件、扫描注解、解析Java Config等。在解析配置文件时Spring会根据配置文件的语法规则进行解析并将解析结果封装成BeanDefinition对象。在扫描注解时Spring会扫描指定包下的类并将带有指定注解的类封装成BeanDefinition对象。在解析Java Config时Spring会根据Java Config配置文件的语法规则进行解析并将解析结果封装成BeanDefinition对象。 ClassPathBeanDefinitionScanner是Spring框架的一个工具类它可以在指定的包路径下搜索bean。它会扫描所有符合条件的类并将其注册为bean以便在后续的操作中使用。使用这个工具类会先创建一个BeanDefinitionRegistry对象然后创建一个ClassPathBeanDefinitionScanner对象并设置它的扫描路径和过滤器。最后调用scan方法开始扫描扫描完成后ClassPathBeanDefinitionScanner会自动将扫描到的类注册到BeanDefinitionRegistry中。完成注册后你就可以使用Spring的BeanFactory来获取指定的bean了。 刷新流程 refresh()主要用于容器的刷新Spring中的每一个容器都会调用refresh()方法进行刷新。refresh()方法主要完成以下几个步骤 1进行容器的准备工作如初始化环境变量、注册系统事件监听器等。 2创建或获取BeanFactory实例。如果创建时传入了BeanFactory实例则使用该实例否则根据配置文件创建一个新的BeanFactory实例。 3对BeanFactory进行一些必要的设置如设置ClassLoader、设置BeanPostProcessor等。 4对BeanFactory进行后置处理可用于扩展BeanFactory的功能。 5执行BeanFactoryPostProcessor接口的实现类对BeanFactory进行后置处理。 6注册所有的BeanPostProcessor实现类。 7初始化MessageSource用于国际化处理。 8初始化事件广播器用于事件的发送和接收。 9通知所有已注册的监听器容器已经初始化完成。 10关闭容器时进行资源的释放。 11注册事件监听器。 12完成BeanFactory的初始化工作包括创建实例、注入依赖、执行初始化方法等。 13完成容器的初始化释放资源等。 //refresh()的简略源码 public void refresh() throws BeansException, IllegalStateException {synchronized (this.startupShutdownMonitor) {// 1. 刷新前的预处理prepareRefresh();// 2. 获取 beanFactory即前面创建的【DefaultListableBeanFactory】ConfigurableListableBeanFactory beanFactory obtainFreshBeanFactory();// 3. 预处理 beanFactory向容器中添加一些组件prepareBeanFactory(beanFactory);try {// 4. 子类通过重写这个方法可以在 BeanFactory 创建并与准备完成以后做进一步的设置postProcessBeanFactory(beanFactory);// 5. 执行 BeanFactoryPostProcessor 方法beanFactory 后置处理器invokeBeanFactoryPostProcessors(beanFactory);// 6. 注册 BeanPostProcessorsbean 后置处理器registerBeanPostProcessors(beanFactory);// 7. 初始化 MessageSource 组件做国际化功能消息绑定消息解析initMessageSource();// 8. 初始化事件派发器在注册监听器时会用到initApplicationEventMulticaster();// 9. 留给子容器子类子类重写这个方法在容器刷新的时候可以自定义逻辑web 场景下会使用onRefresh();// 10. 注册监听器派发之前步骤产生的一些事件可能没有registerListeners();// 11. 初始化所有的非单实例 beanfinishBeanFactoryInitialization(beanFactory);// 12. 发布容器刷新完成事件finishRefresh();}catch(){...}finally{...}} }
http://www.yutouwan.com/news/227280/

相关文章:

  • 泉州网站建设哪里优惠合肥网站建站报广告代理
  • dede网站301怎么做腾讯建站模板
  • 手机网站开发流程图wordpress 30分钟过期
  • 网站备案是域名还是空间深圳微信开发
  • 怎么查公司地址seo站长查询
  • 深圳建设个网站同城信息小程序源码
  • 网站建设 主要学是么智慧餐厅管理系统
  • 网站建设上传视频教程wordpress是服务器吗
  • 网站系统关键字wordpress个人介绍
  • wap商城网站模板素材怎么删除WordPress外链
  • 网站设计的公司排名海淀网站设计公司
  • 企业网站的综合要求是什么百度一下首页网页
  • 网站建设企业推荐如何做分类网站信息营销
  • 做口碑都有哪些网站行业网站建设内容
  • 网站图标怎么做的专业做网站联系电话
  • 株洲网站推广优化做的好的大学生旅行有哪些网站好
  • 长沙做网站设计公司网页怎么制作
  • 网站开发进度安排文档企业文化视频制作
  • 合肥营销网站建设设计网站开发数据库课程设计
  • 网站建设参考论文网站app下载大全
  • 网站建设销售信北京住房建设部网站首页
  • 州网站建设网站制作完工验收单
  • 辽宁省工程造价管理总站企业宣传册一般分几个模块
  • 怎么制作网站的网页设计虚拟主机的作用
  • 如何学好网站开发沈阳网站
  • 珠海金泉做网站号公司或个人码wordpress修改域名登录后台
  • 做网站最好软件宜春市城乡规划建设局网站
  • 电子行业网站石家庄网站推广方案
  • 阿里云建设网站步骤有口碑的南昌网站建设
  • 深圳网站建设(信科网络)wordpress 幻灯制作