程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA編程入門知識 >> 關於可擴展的web架構設計的探索-框架結構的描述文件

關於可擴展的web架構設計的探索-框架結構的描述文件

編輯:JAVA編程入門知識

    這兩天我一直在想,怎樣定義框架結構的描述文件。我從以下幾個方面考慮:

  1. 完整性。在框架的答應范圍內任何情況它都能夠描述。
  2. 語義性。所有的描述必須是唯一、明確。
  3. 一致性。所有的描述必須是統一,不可相互沖突。
  4. 可引用性。所有描述元素必須可達,必須易於訪問。
  5. 可維護性。描述文件可配置、可擴展、可再生。
  6. 可讀性。所有的描述必須是易於理解。

      現在我需要這樣的一個描述文件:描述框架網頁,也就是frame的網頁。 先前我分析了eclipse的插件描述文件。它是這樣定義的:

<?XML version="1.0" encoding="UTF-8"?>
<plugin
   id="com.nidapeng.eclipse.plugin"
   name="Welcome to Eclipse"
   version="1.0"
   provider-name="Ni Dapeng">
<requires>
   <import plugin="org.eclipse.ui"/>
</requires>
<runtime>
   <library name="welcome.jar"/>
</runtime>
<extension
      point="org.eclipse.ui.views">
   <category
         name="Welcome"
         id="com.nidapeng.eclipse.plugin.category1">
  </category>
   <view
         name="Welcome to Eclipse"
         category="com.nidapeng.eclipse.plugin.category1"
         class="com.nidapeng.eclipse.plugin.Welcome"
         id="com.nidapeng.eclipse.plugin.view1">
  </view>
</extension>
</plugin>
    plugin.xml中一共有四個主要的標簽:plugin,requires,runtime,extension。其中plugin標簽的屬性提供的是我們要開發的Welcome插件的基本信息,除了name,version,provider-name等,最重要的是id,我們通過它可以索引到此元素。requires標簽中所列出的是需要的插件,這裡我們要用到Eclipse Workbench和SWT API,因此導入了org.eclipse.ui插件。 runtime標簽指明的是我們開發的插件所在JAR包的文件名。extension標簽是插件擴展點的信息。 org.eclipse.ui.views是Eclipse系統提供的觀察窗口擴展點,我們的例子是一個觀察窗口(View),這表明我們是要在 org.eclipse.ui.views擴展點上進一步開發。 extension中還包括category和view兩個標簽,並且在view的屬性中聲明了Welcome插件的類名。

      我以為我發現了寶貝,興奮了好一陣!你看,多麼美妙的結構。包含了外部包的聲明、運行時的庫、擴展點的設置、視圖的定義。最最閃亮之處就是擴展點。這意味著所有的插件都可以具備容器的能力,插件可以插入另外一個插件裡面,插件本身就是個可擴展的。

      當我著手建立這樣的Java模型時候,我碰到難題了。我怎樣才能將插件視圖插入到框架視圖裡呢?我怎樣才能實現框架與插件之間的通信,包括事件的傳遞。

      首先說明一下這個框架的具體的應用和所采用的技術。這個框架是個web應用,窗體可配置的,可能是上下一分為二,也可能是左右一分為二等等,並且窗體可嵌套的。窗體的每一區域具體的視圖也可配置的,可能是個導航條,也可能是個列表框。技術打算采用struts的架構,保留action、bean、view。它們可以幫助我們完成其中一些繁重的工作。所以容器治理只能是struts本身的ActionServlet容器或者它的子類。

      Struts是一個高度可配置、高度擴展性的MVC框架,我們幾乎可以用它開發任何能想到的用Java技術的Web應用。MVC模式的每一部分在StrUCts中都有相關對應部分。在struts裡action是控制層,bean是模型層,view是視圖層。

      現在我們把框架需求整理一下,以便我們更好的分析和定義框架的描述文件。

  1. 窗體可配置
  2. 窗體可嵌套
  3. 視圖可配置
  4. 視圖可定義
  5. 建立在struts框架之上

      好了,現在知道我們需要做什麼了。我們的描述文件裡需要包括下列元素:

  1. 窗體描述
  2. 擴展點描述
  3. antion關聯

      這裡沒有視圖描述,因為struts已經將action關聯了視圖。所以我們只需要治理action就行了。視圖的處理全部交給struts去做了。

      太累了,這裡先放上初步的框架描述文件。以後等大腦清醒了,再闡述~

<?xml version="1.0" encoding="UTF-8"?>
/*begin插件定義*/
<plugin
    id="com.useeasy.plugin"
    name="Welcome to frame"
    version="1.0"
    provider-name="doJava">
/*begin擴展區定義*/
<frameset
    rows="64,*"
    desc="可擴展插件的web框架"
    extension="com.useeasy.frame">
<frame
    id="com.useeasy.header"
    scrolling="no"
    noresize="true"
    action="/headAction"
    desc="第一個擴展區"
</frame> 
<frame
    id="com.useeasy.main
    action="/listAction"
    desc="第二個擴展區">
</frame> 
</frameset> //定義兩個擴展區
/*end擴展區定義
</plugin>
/*end插件定義*/

  
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved