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

邢台物流网站建设网站建设 会议纪要

邢台物流网站建设,网站建设 会议纪要,wordpress 不同域名,e龙岩官网登录此注解是springboot自动注入的关键注解#xff0c;所以拿出来单独分析一下。 启动类的run方法跟进去最终找到refresh方法#xff1b; 这里直接看这个org.springframework.context.support.AbstractApplicationContext#refresh方法即可#xff0c;它下面有一个方法 invoke…此注解是springboot自动注入的关键注解所以拿出来单独分析一下。 启动类的run方法跟进去最终找到refresh方法 这里直接看这个org.springframework.context.support.AbstractApplicationContext#refresh方法即可它下面有一个方法 invokeBeanFactoryPostProcessors(beanFactory) 此处 最终调用的是 org.springframework.context.support.PostProcessorRegistrationDelegate#invokeBeanFactoryPostProcessors方法 在这里就不做详细的每一步分析了直接找起作用的代码了。 它下面有一段如下代码 // First, invoke the BeanDefinitionRegistryPostProcessors that implement PriorityOrdered. String[] postProcessorNames beanFactory.getBeanNamesForType(BeanDefinitionRegistryPostProcessor.class, true, false);断点可以看到 在加上代码的注释此时第一步调用了获取实现BeanDefinitionRegistryPostProcessor的接口的类的方法可以看到此时只有一个类即ConfigurationClassPostProcessor类它是由容器初始化的时候指定加载的bean定义用来扫描springboot注解配置的相关属性类 所以此时就会调用其的processConfigBeanDefinitions方法此方法中有一个 parser.parse(candidates) 最终调用的方法中会有如下代码 // Process any Import annotations processImports(configClass, sourceClass, getImports(sourceClass), filter, true) 可以看到到此处的时候才会去加载Import注解但在此之前程序会扫描Component、PropertySourcesComponentScans注解 此时读取到相应的实现import引入的类的selectImports方法即可执行相关的配置属性在执行的时候有一个判断 if (candidate.isAssignable(ImportSelector.class)) { }else if (candidate.isAssignable(ImportBeanDefinitionRegistrar.class)) { } 即使用Import注解时其类必须实现ImportSelector接口或者ImportBeanDefinitionRegistrar接口 然后调用其selectImports方法或者registerBeanDefinitions方法这里ImportSelector还有一个子接口即DeferredImportSelector接口 那么在这个三者之间存在什么关系 if (selector instanceof DeferredImportSelector) { this.deferredImportSelectorHandler.handle(configClass, (DeferredImportSelector) selector); } 如果实现了DeferredImportSelector接口它会将其放入一个DeferredImportSelectorHandler中不会立马执行而如果是ImportSelector接口则会直接调用其方法。如果是ImportBeanDefinitionRegistrar接口则会添加到ConfigurationClass#importBeanDefinitionRegistrars属性中他是一个map。 所以ImportSelector接口会直接执行方法其他两种都会延迟执行加载那么延迟到什么时候呢 1对于DeferredImportSelector接口则是parse方法的最后一步 this.deferredImportSelectorHandler.process() 此时才会去执行实现ImportBeanDefinitionRegistrar接口的方法 此时要注意ImportBeanDefinitionRegistrar接口内部有一个Group接口当getImportGroup方法不返回null时此时就不会执行其selectImports接口了此时会调用Group下的process方法此处在后面会使用到 ImportSelector与DeferredImportSelector的区别就是selectImports方法执行时机有差别在DeferredImportSelector之前会对ImportResource、Bean这些注解进行处理。 2对于ImportBeanDefinitionRegistrar接口 在上面的parse方法执行完之后会有如下方法 this.reader.loadBeanDefinitions(configClasses) 此时会执行ImportBeanDefinitionRegistrar接口的方法 所以最终的执行时机为 ImportSelector接口的优先级高于DeferredImportSelector接口的执行时机 DeferredImportSelector接口的优先级高于ImportBeanDefinitionRegistrar接口的执行时机。
http://www.laogonggong.com/news/127449.html

相关文章:

  • 现代企业网站建设特点用c做网站
  • 北京免费建站模板字幕如何做模板下载网站
  • 网站模版源码乌海建设网站
  • 织梦手机网站怎么做广东网络推广服务
  • 红酒网站制作wordpress插件排行
  • app购物网站建设广州网页编辑数量
  • 网站收录需要多久有了域名如何建网站
  • dedecms 网站地图 插件电动牙刷开发
  • 网站域名被注销专业图片在线制作网站
  • 网站推广seo方法如何创立一个公众号
  • 小程序seo推广技巧优化什么
  • 成都学网站建设费用优化文章对网站的重要性
  • 推广自身网站北京 工业网站建设公司价格
  • 看希岛爱理做品的网站四川网站建设咨询
  • 公司做网站收费如何免费网站建设
  • 网站导航栏自适应显示如何发布自己做的网站
  • 建设网站的软件下载网站开发答辩知识点
  • 免费在线做网站推广普通话绘画作品
  • 做网站是干什么用的成都成华区建设局官方网站
  • 微网站促销版行业网站域名选择
  • 建设银行网站功能专门做折扣的网站
  • 网站建设的英文翻译最新足球新闻头条
  • 微信网站模板源码湛江网站建设服务
  • 除尘环保设备网站模板可以做英文教师的网站
  • 东城免费做网站wordpress 远程调用函数
  • 购买一个网站需要多少钱?wordpress devion
  • 一起做网店17广州沙河网站建设及优化 赣icp
  • 网站怎么优化到首页飞鱼crm系统官网
  • 什么是传统网站wordpress 样式插件
  • 做配色的网站本地wordpress数据