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

网站曝光率哈尔滨网络公司新闻

网站曝光率,哈尔滨网络公司新闻,什么网站做玩具的外贸,wordpress 删除超文本简介 在Bean的创建过程中会有很多的后置处理器#xff0c;例如实例化前、实例化后、初始化前、初始化后#xff0c;属性填充等#xff0c;这些都是通过BeanPostProcessor来实现的 那么既然每个Bean都有有这些生命周期#xff0c;这些BeanPostProcessor肯定需要提前知道例如实例化前、实例化后、初始化前、初始化后属性填充等这些都是通过BeanPostProcessor来实现的 那么既然每个Bean都有有这些生命周期这些BeanPostProcessor肯定需要提前知道并且实例化出来保存而我们前面介绍来BeanDefinition的扫描就可以把所有的Bean找出来只要在实例化单例Bean之前把BeanPostProcessor实例化好就行了 在spring中就有这么一步注册BeanPostProcessor 就在AbstractApplicationContext#refresh方法中的一步registerBeanPostProcessors(beanFactory); 源码解析 public static void registerBeanPostProcessors(ConfigurableListableBeanFactory beanFactory, AbstractApplicationContext applicationContext) {// 通过getBeanNamesForType可以拿到所有的名字因为这个时候还没有实例化所以就拿到名字里面使用isTypeMatch匹配String[] postProcessorNames beanFactory.getBeanNamesForType(BeanPostProcessor.class, true, false);ListBeanPostProcessor priorityOrderedPostProcessors new ArrayList(); // 找出所有实现 PriorityOrdered的BeanPostProcessorListBeanPostProcessor internalPostProcessors new ArrayList(); // 内置的BeanPostProcessor 如 MergedBeanDefinitionPostProcessorListString orderedPostProcessorNames new ArrayList(); // 找出所有实现 Ordered的BeanPostProcessorListString nonOrderedPostProcessorNames new ArrayList(); // 没有任何排序的BeanPostProcessorfor (String ppName : postProcessorNames) {if (beanFactory.isTypeMatch(ppName, PriorityOrdered.class)) {// 通过getBean获得BeanPostProcessor对象BeanPostProcessor pp beanFactory.getBean(ppName, BeanPostProcessor.class);priorityOrderedPostProcessors.add(pp);if (pp instanceof MergedBeanDefinitionPostProcessor) {internalPostProcessors.add(pp);}}else if (beanFactory.isTypeMatch(ppName, Ordered.class)) {orderedPostProcessorNames.add(ppName);}else {nonOrderedPostProcessorNames.add(ppName);}}sortPostProcessors(priorityOrderedPostProcessors, beanFactory); // 升序排序registerBeanPostProcessors(beanFactory, priorityOrderedPostProcessors); // 注册BeanPostProcessorsListBeanPostProcessor orderedPostProcessors new ArrayList(orderedPostProcessorNames.size());for (String ppName : orderedPostProcessorNames) {BeanPostProcessor pp beanFactory.getBean(ppName, BeanPostProcessor.class); // 通过getBean获得BeanPostProcessor对象orderedPostProcessors.add(pp);if (pp instanceof MergedBeanDefinitionPostProcessor) {internalPostProcessors.add(pp);}}sortPostProcessors(orderedPostProcessors, beanFactory); // 升序排序registerBeanPostProcessors(beanFactory, orderedPostProcessors); // 注册BeanPostProcessorsListBeanPostProcessor nonOrderedPostProcessors new ArrayList(nonOrderedPostProcessorNames.size());for (String ppName : nonOrderedPostProcessorNames) {BeanPostProcessor pp beanFactory.getBean(ppName, BeanPostProcessor.class); // 通过getBean获得BeanPostProcessor对象nonOrderedPostProcessors.add(pp);if (pp instanceof MergedBeanDefinitionPostProcessor) {internalPostProcessors.add(pp);}}registerBeanPostProcessors(beanFactory, nonOrderedPostProcessors);sortPostProcessors(internalPostProcessors, beanFactory); // 升序排序 MergedBeanDefinitionPostProcessor排在最后registerBeanPostProcessors(beanFactory, internalPostProcessors);beanFactory.addBeanPostProcessor(new ApplicationListenerDetector(applicationContext)); //注册 ApplicationListenerDetector 这个后续将 }注册也会有个先后顺序首先是实现了PriorityOrdered的排在前面然后是实现Ordered接口的再然后是没有现实排序接口的最后是内置的例如MergedBeanDefinitionPostProcessor 这些BeanPostProcessor都会注册通过beanFactory缓存起来 private final ListBeanPostProcessor beanPostProcessors new BeanPostProcessorCacheAwareList();public void addBeanPostProcessor(BeanPostProcessor beanPostProcessor) {Assert.notNull(beanPostProcessor, BeanPostProcessor must not be null);this.beanPostProcessors.remove(beanPostProcessor);this.beanPostProcessors.add(beanPostProcessor); }总结 从上面的代码中可以看出在其他的单例Bean实例化之前会先把BeanPostProcessor实例化好并且排序 后面讲实例化前的BeanPostProcessor 欢迎关注学习不迷路
http://www.zqtcl.cn/news/614938/

相关文章:

  • 网站建设基础大纲文案丽江网站建设 莱芜
  • 程序员找工作的网站怎么给搞笑网站做文案
  • 网站flsh怎么做能被百度收录的建站网站
  • 娄底网站seo建平台网站费用
  • seo优化网站的注意事项WordPress伪静态公告404
  • 手机网站自动适应沈阳网站建设公司电话
  • 备案号网站下边苏州广告公司招聘
  • 企业网站设计模板js做网站
  • 福州最好的网站建设公司网络策划
  • 威宁做网站西部数码网站管理助手 没有d盘
  • 网站设计基础知识重庆seo博客推广
  • 中小企业商务网站建设wordpress dmeng
  • 关于网站建设总结公司网站购买主机
  • 定制网站与模板网站网页美工设计师工资
  • 丹棱县 网站建设wordpress公司主题破解版
  • 贾汪微网站开发百度推广登录账号首页
  • 网站开发和网站运营的区别嘉兴市秀洲区住房和建设局网站
  • 西安网站开发公司哪家强如何做付费阅读网站
  • ios认证 东莞网站建设天津企业网站建设方案
  • 高网站排名吗wordpress 拼音别名
  • 网站出现的问题杭州旅游网站建设
  • 陕西城乡建设部网站怎么用自己注册的域名做网站
  • 企业邮箱注册价格汕头做网站优化的公司
  • 高校工会网站建设网站静态页面生成
  • 辽宁省营商环境建设局 网站做网站前端后端ui什么意思
  • 合作社网站模板贵州安顺建设主管部门网站
  • 网站不备案能访问吗哪家做企业网站
  • 做网站写的代号好跟不好的区别企信网企业信用信息系统
  • 网站需要服务器吗手机网站解决方案
  • 网站子网页怎么做国外网站 模板