国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

通過 XQuery/XPath 支持松散耦合

2019-11-18 12:48:40
字體:
來源:轉載
供稿:網友

  我最近的許多時間都花在Reeter項目上了。目前我的注重力主要放在內容編寫器上,尤其是支持BEA CMS的編寫器。正如平常一樣,在開發中我不時地發現,在reeterconfig.xml中,這里需要添加一些東西,那里需要移除一些東西。該文件包含了Reeter所有的儲存庫和feed信息。現在我經常更改它,而且我發現我必須不斷地更改XML Beans以反映新的結構。
  
  經過幾次重構后,我開始有Shotgun Surgery的感覺了,我不斷地對整個代碼樹做一些小的更改。我考慮了一下,認為我的問題是,隨著功能的發展和貶值等等,這種更改在配置文件中是不可避免的。我非常了解當前的設計,并避免僅僅因為看上去很酷就添加一大堆華而不實的特性,但是目前這是人們所關心的一個重要方面,而且我認為這種趨勢會加劇。所以我決定求助于XQuery/XPath和XMLBeans的支持。
  
  經過少量的修改之后,所有對配置文檔的調用都通過xquery選擇語句進行。這種投資物有所值。昨晚我再次修改了配置模式,我只需更新一個包含所有的xquery選擇語句的屬性文件。現在我可以集中精力實現編寫器,然后就可以將其發布了。
  
  下面的代碼片斷可以說明,如何利用XQuery/Xpath和XMLBeans來支持所生成的對象之間的松散耦合。
  
  Except from ReeterContext.java
  
  ReeterContext是一個單元素類,它負責維護當前運行的配置,并返回它的數據。下面的方法接受一個要害字(針對ResourceBundle),以供對XMLBean執行所需的xquery。
  
  public String queryConfig(String querykey)
  {
  XmlCursor cursor = _doc.newCursor();
  cursor.toFirstChild();
  cursor.selectPath(getXQuery(querykey));
  cursor.toNextSelection();
  return cursor.getTextValue();
  }
  現在,假如要從配置文檔檢索一個值,只需如此:
  
  String repositoryType = ctx.queryConfig("repository.type");
  而不是使用我以前所使用的緊密耦合方法:
  
  String repositoryType =
  _doc.getReeterConfig().getConfig().getDocument().getRespository().getType();

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 池州市| 河西区| 察雅县| 宣武区| 高邮市| 大关县| 永昌县| 望城县| 泗阳县| 忻州市| 唐山市| 乐至县| 申扎县| 乌拉特前旗| 池州市| 丘北县| 平昌县| 张家界市| 蕲春县| 建平县| 富阳市| 遵义市| 恩平市| 文成县| 秭归县| 芜湖县| 浙江省| 德江县| 桓台县| 九龙坡区| 关岭| 桑日县| 长垣县| 扬中市| 三都| 湛江市| 扶风县| 沧州市| 枞阳县| 长丰县| 井研县|