zxbyhcsdn

           

          myeclipse搭建SSH2環境的項目引用

          >問題提出:

            比如說你要電子商務系統類似淘寶的那玩意兒,
            這個系統應該有一個管理系統門戶,還有一系列接口(提供給taobao旺旺客戶端調用的接口,還有淘寶開放平臺的那些api),然后就是一個網站門戶這個是顯然不可少的.

            也就是說,大多數系統都不可能只有一個門戶,并且從部署和安全的角度來說,管理門戶都會單獨部署,并且限制能夠訪問的ip.

            從邏輯架構來劃分也應該是 業務邏輯層(或者稱為服務層),然后是多個web門戶.或者接口服務門戶
            如果是采用ms的doNET的話,可以建一個解決方案,然后再建多個項目,由于doNET的編譯后一個項目是一個dll存在,故doNET來說應該根據分層建立多個項目.doNET
            也推薦采用這樣的方式.

            下面說一下采用j2ee處理這樣的情況的做法.這兒以myeclipse為例來說.

            根據上述情況,顯然我們應該把業務邏輯放到一個項目,其他的門戶根據每一個門戶單獨建立一個項目,以后系統部署的時候,也就將不同的門戶部署到不同的服務器上去.

            其實就是各門戶的項目引用業務邏輯項目就可以了,將公用的東東都抽象出來放到一起(比如說 商品相關的邏輯 在網站門戶,管理后臺,接口都會共用的)

            下面用一個簡單的例子,說明一下實現步驟. 最后再介紹ssh2項目怎樣實現.

          步驟如下:

          新建一個java project   [注意:]這兒一定要是一個java project ,我試過如果建成一個web projcet的話,可以編譯通過,但是發布的時候,引用的class不會自己動拷貝過去,除非手動拷貝.
          起名字為servicecore,名字無所謂的.
          然后在src,再建一個folder叫service

          隨便寫個類:

          package service;
          public class OneSrv
          {
           public String test()
           {
            return "this is test info";
           }
          }

          然后再建一個java web project
          起名字叫serviceweb,名字無所謂的
          然后,選中這個項目,屬性,java build path 里面選projects
          然后添加servicecore這個項目,
          在native library location那兒,選workspace,就指到 servicecore 的src目錄就是了 [這兒就表示發布的時候,會應用的項目的src目錄下的東東全部發布到目標項目]


          然后在serviceweb項目的src下面,再建一個folder叫srvproxy
          再寫一個類,來調用servicecore項目的的類的方法
          package srvproxy;
          import service.*;
          public class OneSrvProxy
          {
           public String test()
           {
            OneSrv oneSrv = new OneSrv();
            return oneSrv.test();
           }
          }

          再在jsp頁面上調用這個

          <%
                srvproxy.OneSrvProxy oneSrvProxy = new srvproxy.OneSrvProxy();
                out.println(oneSrvProxy.test());
              %>

          然后發布這個serviceweb項目到tomcate或者其他的容器,
          可以看到在發布的目錄下的serviceweb\WEB-INF\classes\service
          下面,也有那個OneSrv.class了

          呵呵..,如果沒有問題的話,訪問那個jsp頁面,就能看到調用的情況啦.

          也可以在jsp頁面上直接調用,OneSrv.class,
          對于web project 來說的話,只要是在\WEB-INF\classes\下面的class都可以調用的.

          這樣就把業務邏輯和表示分離了.

          但是上述的例子只是一個非常簡單的,實際的系統開發有數據訪問等. 下面就介紹對于一個SSH2 項目如何實現

          這兒以一個已經存在的ssh2 的web project 項目為利,講解怎樣吧業務邏輯抽象到一個java project 中.

          步驟如下:
          一,新建一個java project ,在servicecore里面隨便建一個lib,

          這兒分兩種情況,
          如果是已經有一個現成的ssh2 的 web project
          就想現成的 web projcect 的webroot的web-info下的lib文件甲的那些jar包全部拷貝到 servicecore 這個java project 的lib里面

          如果是沒有現成的ssh2 的web project 的話.
          可以通過myeclipse添加hibernate和spring的capability指定myeclipse的那些jar包到那個lib下,
          完成后,把那個lib下的jar包,拷貝到serviceweb的webroot的web-info下的lib文件甲

          這兒保證ssh2的相關的jar包都放到lib下面了.
          然后選中servicecore 屬性,java build path -> libraries 選擇Add External JARs,然后指向剛才的那個lib文件夾
          這樣項目就能使用那些jar包了. 同時把web project 的 build path 也 添加這些JAR包.

          [注意:]我遇到這樣一個問題,就是servicecore這個項目找不到數據庫 的jdbc驅動,明明我吧ojdbc14.jar加到那個buildpath里面了的.
                 解決辦法是在myeclipse的java類編輯器,報錯的那個不能識別的包名下劃線那兒雙擊,會彈出來一個窗口,里面有一個oracle jdbc的驅動
                 其實這個是另外的webprojcect里面的jdbc驅動.使用這個也沒關系,只要編譯通過就可以了.反正最總發布的時候,是使用web poject的的webroot的web-info下的lib文件甲里面的jar包.


          再將web project 的引用指向servicecore 這個java project ,步驟如前面所說.

          二, 相關的文件的處理

          1.spring 配置文件的處理.

          由于ssh2項目的話,spring配置文件里面會包含 dao,Bo,action等各層的class 故,需要對配置文件進行分割.

          這兒將所有的配置文件都放到/WEB-INF/classes/spr-conf/文件夾下面,
          [注意:]這個是發布后的位置,解決方案中的classes 就對應src 目錄.
          在web.xml里面的spring配置文件路徑就寫成如下
          <context-param>
              <param-name>contextConfigLocation</param-name>
              <param-value>/WEB-INF/classes/spr-conf/*.xml</param-value>
          </context-param>

          然后在servicecore 的 src 目錄下新建spr-conf目錄,在所有的web project的src目錄下也建spr-conf目錄.
          將dao,bo等業務邏輯類的配置放到servicecore的 spring配置文件中,
          將action等類配置放到web projcect 的srping配置文件中,

          這樣struts的配置文件放到web project 中, hibernate的配置文件放到servicecore中.spring配置文件(action的在web projcect,其他的都放到servicecore).

          三 總述
            經過這樣的處理,項目就分離了,對于較大的項目,開發人員可以分工,一些人專門做業務邏輯,一些人專門做前端頁面,同時也達到了復用的效果.


           

          posted on 2010-02-20 12:06 zxbyh 閱讀(4091) 評論(0)  編輯  收藏 所屬分類: J2se


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          導航

          統計

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 宁强县| 武陟县| 宝山区| 德庆县| 大竹县| 德钦县| 沁水县| 唐山市| 丹巴县| 资中县| 渭源县| 平远县| 漳浦县| 巴青县| 乐昌市| 普宁市| 商南县| 墨竹工卡县| 阿巴嘎旗| 孟连| 榆社县| 若尔盖县| 安福县| 灵石县| 丰顺县| 天气| 涟源市| 砀山县| 四平市| 宁南县| 靖安县| 错那县| 兴宁市| 陵水| 溆浦县| 蓬溪县| 青龙| 固阳县| 潢川县| 广汉市| 长春市|