<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    爪哇東南的自留地

    學(xué)習(xí)探討開源和web開發(fā)

    導(dǎo)航

    <2006年9月>
    272829303112
    3456789
    10111213141516
    17181920212223
    24252627282930
    1234567

    統(tǒng)計

    常用鏈接

    留言簿(1)

    隨筆分類

    隨筆檔案

    相冊

    收藏夾

    life

    technique

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    J2EE開發(fā)之常用開源項目介紹--轉(zhuǎn)載(學(xué)習(xí))

    主要還是以Spring為核心,也總結(jié)了一些以前web開發(fā)常用的開源工具和開源類庫
    ?
    1持久層:???????
    1)Hibernate
    這個不用介紹了,用的很頻繁,用的比較多的是映射,包括繼承映射和父子表映射
    對于DAO在這里介紹個在它基礎(chǔ)上開發(fā)的包bba96,目前最新版本是bba96 2.0它對Hibernate進行了封裝, 查詢功能包括執(zhí)行hsql或者sql查詢/更新的方法,如果你要多層次邏輯的條件查詢可以自己組裝QueryObject.可以參考它做HibernateDAO.也可以直接利用它
    2) iBATIS
    另一個ORM工具,沒有Hibernate那么集成,自由度比較大,所以使用時普遍性能上比Hibernate要快一些.
    2:SpringMVC
    ?????? 原理說明和快速入門:
    ?????? 配置文件為:
    Spring的配置文件默認(rèn)為WEB-INF/xxxx-servelet.xm其中xxx為web.xml中org.springframework.web.servlet.DispatcherServlet的servlet-name。
    ?????? Action分發(fā):
    Spring將按照配置文件定義的URL,Mapping到具體Controller類,再根據(jù)URL里的action= xxx或其他參數(shù),利用反射調(diào)用Controller里對應(yīng)的Action方法。
    輸入數(shù)據(jù)綁定:
    Spring提供Binder 通過名字的一一對應(yīng)反射綁定Pojo,也可以直接從request.getParameter()取數(shù)據(jù)。
    輸入數(shù)據(jù)驗證
    Sping 提供了Validator接口當(dāng)然還可以使用開源的Commons-Validaor支持最好
    Interceptor(攔截器)
    Spring的攔截器提供接口需要自己編寫,在這點不如WebWork做的好.全面
    ?????? (這里提一下WebWork和Struts的區(qū)別最主要的區(qū)別在于WebWork在建立一個Action時是新New一個對象而Struts是SingleMoule所有的都繼承它的一個Action,所以根據(jù)項目需要合適的選擇.)
    3:View層
    1) 標(biāo)簽庫:JSP2.0/JSTL
    由于Webwork或Spring的標(biāo)簽確實很有限,一般view層用JSTL標(biāo)簽,而且據(jù)說JSTL設(shè)計很好速度是所有標(biāo)簽中最快的使用起來也很簡單
    ?
    2) 富客戶端:DOJO Widgets, YUI(YahooUI),FCKEditor, Coolest日歷控件
    Dojo主要提供Tree, Tab等富客戶端控件,可以用其進行輔助客戶端開發(fā)
    YahooUI和DOJO一樣它有自己的一套javascript調(diào)試控制臺,主要支持ajax開發(fā)也有很多Tree,Table,Menu等富客戶端控件
    FCKEditor 最流行的文本編輯器
    Coolest日歷控件 目前很多日歷控件可用,集成在項目中也比較簡單,這個只是其中的一個,界面不錯的說..
    ?
    3) JavaScript:Prototype.js
    Prototype.js作為javascript的成功的開源框架,封裝了很多好用的功能,通過它很容易編寫AJAX應(yīng)用,現(xiàn)在AJAX技術(shù)逐漸成熟,框架資源比較豐富,比如YUI,DWR等等,也是因為JavaScript沒有合適的調(diào)試工具,所以沒有必要從零開始編寫AJAX應(yīng)用,個人認(rèn)為多用一些成熟的Ajax框架實現(xiàn)無刷新更新頁面是不錯的選擇.
    ?
    4)表格控件:Display Tag ,Extreme Table
    這兩個的功能差不多,都是View層表格的生成,界面也比較相向,可以導(dǎo)出Excel,Pdf,對Spring支持很容易.
    相比較而言比較推薦ExtremeTable,它的設(shè)計很好功能上比DisplayTag多一些,支持Ajax,封裝了一些攔截器,而且最方面的是在主頁wiki中有詳細的中文使用文檔.
    ?
    5):OSCache
    OSCache是OpenSymphony組織提供的一個J2EE架構(gòu)中Web應(yīng)用層的緩存技術(shù)實現(xiàn)組件,Cache是一種用于提高系統(tǒng)響應(yīng)速度、改善系統(tǒng)運行性能的技術(shù)。尤其是在Web應(yīng)用中,通過緩存頁面的輸出結(jié)果,可以很顯著的改善系統(tǒng)的穩(wěn)定性和運行性能。
    它主要用在處理短時間或一定時間內(nèi)一些數(shù)據(jù)或頁面不會發(fā)生變化,或?qū)⒁恍┎蛔兊慕y(tǒng)計報表,緩沖在內(nèi)存,可以充分的減輕服務(wù)器的壓力,防治負(fù)載平衡,快速重啟服務(wù)器(通過硬盤緩存).
    ?
    6)SiteMesh
    sitemesh應(yīng)用Decorator模式主要用于提高頁面的可維護性和復(fù)用性,其原理是用Filter截取request和response,把頁面組件head,content,banner結(jié)合為一個完整的視圖。通常我們都是用include標(biāo)簽在每個jsp頁面中來不斷的包含各種header, stylesheet, scripts and footer,現(xiàn)在,在sitemesh的幫助下,我們刪掉他們輕松達到復(fù)合視圖模式.
    Sitemesh也是 OpenSymphony的一個項目現(xiàn)在最近的版本是2.2,目前OpenSymphony自從04年就沒有更新的版本了..感覺它還是比較有創(chuàng)新的一種頁面組裝方式, OpenSymphony開源組織的代碼一般寫的比較漂亮,可以改其源代碼對自己的項目進行適配.
    測試發(fā)現(xiàn)Sitemesh還存在一些問題,比如中文問題,它的默認(rèn)編碼是iso-8859-1在使用時候需要做一些改動.
    ?
    7)CSS,XHTML
    這個不用說了,遵循W3C標(biāo)準(zhǔn)的web頁面開發(fā).
    ?
    8)分頁標(biāo)簽: pager-taglib組件
    Pager-taglib 是一套分頁標(biāo)簽庫,可以靈活地實現(xiàn)多種不同風(fēng)格的分頁導(dǎo)航頁面,并且可以很好的與服務(wù)器分頁邏輯分離.使用起來也比較簡單.
    ?
    9)Form: Jodd Form taglib
    Jodd Form taglib使用比較簡單,只要把<form>的頭尾以<jodd:form bean= "mybean">包住
    就會自動綁定mybean, 自動綁定mybean的所有同名屬性到普通html標(biāo)記input, selectbox, checkbox,radiobox.....在這些input框里不用再寫任何代碼…
    ??????
    10)Ajax:DWR
    ?????? J2EE應(yīng)用最常用的ajax框架
    ??????
    ?????? 11)報表 圖表
    Eclipse BIRT功能比較強大,也很龐大..好幾十M,一般沒有特別需求或別的圖表設(shè)計軟件可以解決的不用它
    JasperReports+ iReport是一個基于Java的開源報表工具,它可以在Java環(huán)境下像其它IDE報表工具一樣來制作報表。JasperReports支持PDF、HTML、XLS、CSV和XML文件輸出格式。JasperReports是當(dāng)前Java開發(fā)者最常用的報表工具。
    JFreeChart主要是用來制作各種各樣的圖表,這些圖表包括:餅圖、柱狀圖(普通柱狀圖以及堆棧柱狀圖)、線圖、區(qū)域圖、分布圖、混合圖、甘特圖以及一些儀表盤等等。
    ??????
    ?
    4:權(quán)限控制: Acegi
    Acegi是Spring Framework 下最成熟的安全系統(tǒng),它提供了強大靈活的企業(yè)級安全服務(wù),如完善的認(rèn)證和授權(quán)機制,Http資源訪問控制,Method 調(diào)用訪問控制等等,支持CAS
    (耶魯大學(xué)的單點登陸技術(shù),這個單點登陸方案比較出名.我也進行過配置使用,可以根據(jù)項目需要,如果用戶分布在不同的地方不同的系統(tǒng)通用一套登陸口令可以用它進行解決,一般注冊機登陸機就是這樣解決的)
    ?????? Acegi只是于Spring結(jié)合最好的安全框架,功能比較強大,當(dāng)然還有一些其他的安全框架,這里列舉一些比較流行的是我從網(wǎng)上找到的,使用方法看其官方文檔把…
    JAAS, Seraph, jSai - Servlet Security, Gabriel, JOSSO, Kasai, jPAM, OpenSAML都是些安全控制的框架..真夠多的呵呵
    ?
    5:全文檢索
    ?????? 1) Lucene
    ?????? Lucene是一套全文索引接口,可以通過它將數(shù)據(jù)進行倒排文件處理加入索引文件,它的索引速度和查詢速度是相當(dāng)快的,查詢百萬級數(shù)據(jù)毫秒級出結(jié)果,現(xiàn)在最火的Apache開源項目,版本更新速度很快現(xiàn)在已經(jīng)到了2.0,每個版本更新的都比較大,目前用的最多的版本應(yīng)該是1.4.3,但它有個不太方面的地方單個索引文件有2G文件限制,現(xiàn)在2.0版本沒有這個限制,我研究的比較多,它的擴展性比較好,可以很方面的擴充其分詞接口和查詢接口.
    ?????? 基于它的開發(fā)的系統(tǒng)很多,比如最常用的Eclipse的搜索功能,還有一些開源的軟件比如Compass,Nutch,Lius,還有我最近做的InSearch(企業(yè)級FTP文件網(wǎng)頁搜索)
    6:公共Util類
    ?????? 主要是Jakarta-Commons類庫,其中最常用得是以下幾個類庫
    1) Jakarta-Commons-Language
    ?????? 最常用得類是StringUtils類,提供了使用的字符串處理的常用方法效率比較高
    2) Jakarta-Commons-Beantuils
    ?????? 主要用Beantuils能夠獲得反射函數(shù)封裝及對嵌套屬性,map,array型屬性的讀取。
    3) Jakarta-Commons-Collections
    ?????? 里面有很多Utils方法
    ?
    7 日志管理
    ?????? Log4J
    ?????? 任務(wù)是日志記錄,分為Info,Warn,error幾個層次可以更好的調(diào)試程序
    ?
    8 開源的J2EE框架
    ?????? 1) Appfuse
    ????????????? Appfuse是Matt Raible 開發(fā)的一個指導(dǎo)性的入門級J2EE框架, 它對如何集成流行的Spring、Hibernate、iBatis、Struts、Xdcolet、JUnit等基礎(chǔ)框架給出了示范. 在持久層,AppFuse采用了Hibernate O/R映射工具;在容器方面,它采用了Spring,用戶可以自由選擇Struts、Spring/MVC,Webwork,JSF這幾個Web框架。
    ??????
    ?????? 2) SpringSide
    ?????? .SpringSide較完整的演示了企業(yè)應(yīng)用的各個方面,是一個電子商務(wù)網(wǎng)站的應(yīng)用 SpringSide也大量參考了Appfuse中的優(yōu)秀經(jīng)驗。最重要的是它是國內(nèi)的一個開源項目,可以了解到國內(nèi)現(xiàn)在的一些實際技術(shù)動態(tài)和方向很有指導(dǎo)意義…
    ?
    9:模版 Template
    主要有Veloctiy和Freemarker
    模板用Servlet提供的數(shù)據(jù)動態(tài)地生成 HTML。編譯器速度快,輸出接近靜態(tài)HTML???????????? 頁面的速度。
    ?
    10:工作流
    ?????? 我所知道比較出名的主要有JBpm Shark Osworkflow,由于對它沒有過多的研究所以還不是很清楚之間有什么區(qū)別.
    ?
    項目管理軟件
    dotProject:是一個基于LAMP的開源項目管理軟件。最出名的項目管理軟件
    JIRA: 項目計劃,任務(wù)安排,錯誤管理
    Bugzilla:提交和管理bug,和eclipse集成,可以通過安裝MyEclipse配置一下即可使用
    BugFree借鑒微軟公司軟件研發(fā)理念、免費開放源代碼、基于Web的精簡版Bug管理
    CVS:這個就不介紹了都在用.
    SVN: SubVersion已逐漸超越CVS,更適應(yīng)于JavaEE的項目。Apache用了它很久后,Sourceforge剛剛推出SVN的支持。
    測試用例:主要JUnit單元測試,編寫TestCase,Spring也對Junit做了很好的支持
    ?
    后記:
    ?????? 以Spring為主的應(yīng)用開發(fā)可選用的組件中間件真是眼花繚亂,所以針對不同的項目需求可以利用不同的開源產(chǎn)品解決,比如用Spring+Hibernate/ iBATIS或Spring+WebWork+Hibernate/ iBATIS或Spring+Struts+Hibernate/ iBATIS,合理的框架設(shè)計和代碼復(fù)用設(shè)計對項目開發(fā)效率和程序性能有很大的提高,也有利于后期的維護.

    posted on 2006-09-13 20:19 ericli 閱讀(552) 評論(1)  編輯  收藏 所屬分類: j2ee學(xué)習(xí)

    評論

    # re: J2EE開發(fā)之常用開源項目介紹--轉(zhuǎn)載(學(xué)習(xí)) 2006-09-13 20:10 ericli

    是我們學(xué)習(xí)的一個燈塔!  回復(fù)  更多評論   


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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 免费人妻无码不卡中文字幕系| 福利免费在线观看| 久九九精品免费视频| 一级女性全黄久久生活片免费 | 亚洲福利一区二区| 性xxxx视频免费播放直播| 亚洲AV无码一区东京热| 国产成人久久AV免费| 久久久久亚洲av无码专区| 久久久久久国产精品免费免费男同 | 中文字幕在线免费观看视频| 综合久久久久久中文字幕亚洲国产国产综合一区首 | 久久精品一本到99热免费| 国产91在线免费| 亚洲aⅴ天堂av天堂无码麻豆| 日韩免费无砖专区2020狼| 成人亚洲国产精品久久| 亚洲?V乱码久久精品蜜桃 | 黄瓜视频影院在线观看免费| 国产 亚洲 中文在线 字幕| 精品国产免费观看一区| 人体大胆做受免费视频| 亚洲成A人片在线观看WWW| 日本精品久久久久久久久免费| avtt亚洲天堂| 99视频免费在线观看| 老司机亚洲精品影院| 精品免费国产一区二区三区| 在线观看亚洲精品专区| 亚洲精品无码精品mV在线观看| 久久免费看黄a级毛片| 亚洲女女女同性video| 相泽亚洲一区中文字幕| 67pao强力打造高清免费| 亚洲人成网站免费播放| 亚洲日韩国产精品乱| **实干一级毛片aa免费| 亚洲国产精品18久久久久久| 中文字幕不卡亚洲 | 99re6免费视频| 色欲色欲天天天www亚洲伊|