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

网站维护难做企业管理咨询与诊断实践报告

网站维护难做,企业管理咨询与诊断实践报告,网站怎么做内容,太原编程培训机构一、BeanDefinitionParserDelegate Spring在解析xml文件的时候&#xff0c;在遇到<bean>标签的时候&#xff0c;我们会使用BeanDefinitionParserDelegate对象类解析<bean>标签的内容&#xff0c;包括<bean>标签的多个属性&#xff0c;例如 id name class in…

一、BeanDefinitionParserDelegate

Spring在解析xml文件的时候,在遇到<bean>标签的时候,我们会使用BeanDefinitionParserDelegate对象类解析<bean>标签的内容,包括<bean>标签的多个属性,例如 id name class init-method destory-method等,还包括各种子标签 例如 <properties> <constructor>

org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader#doRegisterBeanDefinitions

/*** Register each bean definition within the given root {@code <beans/>} element.*/@SuppressWarnings("deprecation")  // for Environment.acceptsProfiles(String...)protected void doRegisterBeanDefinitions(Element root) {// Any nested <beans> elements will cause recursion in this method. In// order to propagate and preserve <beans> default-* attributes correctly,// keep track of the current (parent) delegate, which may be null. Create// the new (child) delegate with a reference to the parent for fallback purposes,// then ultimately reset this.delegate back to its original (parent) reference.// this behavior emulates a stack of delegates without actually necessitating one.BeanDefinitionParserDelegate parent = this.delegate;this.delegate = createDelegate(getReaderContext(), root, parent);if (this.delegate.isDefaultNamespace(root)) {String profileSpec = root.getAttribute(PROFILE_ATTRIBUTE);if (StringUtils.hasText(profileSpec)) {String[] specifiedProfiles = StringUtils.tokenizeToStringArray(profileSpec, BeanDefinitionParserDelegate.MULTI_VALUE_ATTRIBUTE_DELIMITERS);// We cannot use Profiles.of(...) since profile expressions are not supported// in XML config. See SPR-12458 for details.if (!getReaderContext().getEnvironment().acceptsProfiles(specifiedProfiles)) {if (logger.isDebugEnabled()) {logger.debug("Skipped XML bean definition file due to specified profiles [" + profileSpec +"] not matching: " + getReaderContext().getResource());}return;}}}preProcessXml(root);parseBeanDefinitions(root, this.delegate);postProcessXml(root);this.delegate = parent;}

 可以看到这里 this.delegate 是一个 BeanDefinitionParserDelegate 对象

 接下来的几层调用中,传递的都是 this.delegate 这个BeanDefinitionParserDelegate 对象

org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader#parseBeanDefinitions
 

/*** Parse the elements at the root level in the document:* "import", "alias", "bean".* @param root the DOM root element of the document*/protected void parseBeanDefinitions(Element root, BeanDefinitionParserDelegate delegate) {if (delegate.isDefaultNamespace(root)) {NodeList nl = root.getChildNodes();for (int i = 0; i < nl.getLength(); i++) {Node node = nl.item(i);if (node instanceof Element) {Element ele = (Element) node;if (delegate.isDefaultNamespace(ele)) {parseDefaultElement(ele, delegate);}else {delegate.parseCustomElement(ele);}}}}else {delegate.parseCustomElement(root);}}

 

二、NamespaceHandler

http://www.yayakq.cn/news/110600/

相关文章:

  • 重庆渝中区企业网站建设哪家专业华商网
  • 如何建设一个查询系统网站html网站分页怎么做的
  • 网站后台管理员密码忘记做百度网站费用
  • 祥云网站优化住房和城乡建设部网站倪虹
  • 建立自己网站的好处之梦系统怎么修改网站标头图片
  • 贵阳市住房和城乡建设厅网站深圳做网站的公司的区域
  • 手机网站设计方案做个视频网站
  • 网站建设项目标书wordpress主题 v2ex
  • 能打开任何网站的浏览器休闲采摘园网站建设
  • 网站布局策划的流程图中软国际
  • 查找做影评的工作网站网页制作怎么上传到网站
  • 荥阳做网站推广网络规划设计师教程(第2版)
  • 做美股的数据网站犀牛云做网站费用
  • 移动端网站建设原则在国外做网站
  • 扁平式网站源码免费网站安全软件大全免费下载
  • 做复印机的模板网站深圳宝安区松岗
  • 做阿里巴巴小企业网站2345网址导航是什么浏览器
  • 网站网站的建设深圳网站建设公司 犀牛云 移动云网站
  • 做网站的分工聚美优品网站建设项目规划书
  • 电子商务网站建设的意义是什么网站设计电商运营
  • 要怎么做自己的网站视频教学自己做交易网站
  • 公司网站建设哪儿济南兴田德润实惠吗中建集团官网
  • 单页网站设计昆明快速做网站
  • 那些网站专门做游戏辅助的简述网站制作过程
  • 徐州网站建设方案优化足球比赛直播阿根廷
  • 巴彦淖尔网站建设公司做网站重庆
  • 宏福建设集团有限公司网站网站没制作好可以备案吗
  • 做网站用linux哪个版本网络推广方法有哪些
  • 朝阳专业网站建设公司黑色炫酷的监控网站html
  • 咸阳市住房和城乡建设规划局网站公司网站建设公司