無為

          無為則可為,無為則至深!

            BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
            190 Posts :: 291 Stories :: 258 Comments :: 0 Trackbacks
          Hibernate一共包括了23個jar包,令人眼花繚亂。本文將詳細(xì)講解Hibernate每個jar包的作用,便于你在應(yīng)用中根據(jù)自己的需要進(jìn)行取舍。

          下載Hibernate,例如2.0.3穩(wěn)定版本,解壓縮,可以看到一個hibernate2.jar和lib目錄下有22個jar包:

          hibernate2.jar:
          Hibernate的庫,沒有什么可說的,必須使用的jar包

          cglib-asm.jar:
          CGLIB庫,Hibernate用它來實(shí)現(xiàn)PO字節(jié)碼的動態(tài)生成,非常核心的庫,必須使用的jar包

          dom4j.jar:
          dom4j是一個Java的XML API,類似于jdom,用來讀寫XML文件的。dom4j是一個非常非常優(yōu)秀的Java XML API,具有性能優(yōu)異、功能強(qiáng)大和極端易用使用的特點(diǎn),同時它也是一個開放源代碼的軟件,可以在SourceForge上找到它。在IBM developerWorks上面可以找到一篇文章,對主流的Java XML API進(jìn)行的性能、功能和易用性的評測,dom4j無論在那個方面都是非常出色的。我早在將近兩年之前就開始使用dom4j,直到現(xiàn)在。如今你可以看到越 來越多的Java軟件都在使用dom4j來讀寫XML,特別值得一提的是連Sun的JAXM也在用dom4j。這是必須使用的jar包, Hibernate用它來讀寫配置文件。

          odmg.jar:
          ODMG是一個ORM的規(guī)范,Hibernate實(shí)現(xiàn)了ODMG規(guī)范,這是一個核心的庫,必須使用的jar包。

          commons-collections.jar:
          Apache Commons包中的一個,包含了一些Apache開發(fā)的集合類,功能比java.util.*強(qiáng)大。必須使用的jar包。

          commons-beanutils.jar:
          Apache Commons包中的一個,包含了一些Bean工具類類。必須使用的jar包。

          commons-lang.jar:
          Apache Commons包中的一個,包含了一些數(shù)據(jù)類型工具類,是java.lang.*的擴(kuò)展。必須使用的jar包。

          commons-logging.jar:
          Apache Commons包中的一個,包含了日志功能,必須使用的jar包。這個包本身包含了一個Simple Logger,但是功能很弱。在運(yùn)行的時候它會先在CLASSPATH找log4j,如果有,就使用log4j,如果沒有,就找JDK1.4帶的 java.util.logging,如果也找不到就用Simple Logger。commons-logging.jar的出現(xiàn)是一個歷史的的遺留的遺憾,當(dāng)初Apache極力游說Sun把log4j加入JDK1.4, 然而JDK1.4項(xiàng)目小組已經(jīng)接近發(fā)布JDK1.4產(chǎn)品的時間了,因此拒絕了Apache的要求,使用自己的java.util.logging,這個包 的功能比log4j差的很遠(yuǎn),性能也一般。

          后來Apache就開發(fā)出來了commons-logging.jar用來兼容兩個 logger。因此用commons-logging.jar寫的log程序,底層的Logger是可以切換的,你可以選擇log4j, java.util.logging或者它自帶的Simple Logger。不過我仍然強(qiáng)烈建議使用log4j,因?yàn)閘og4j性能很高,log輸出信息時間幾乎等于System.out,而處理一條log平均只需 要5us。你可以在Hibernate的src目錄下找到Hibernate已經(jīng)為你準(zhǔn)備好了的log4j的配置文件,你只需要到Apache 網(wǎng)站去下載log4j就可以了。commons-logging.jar也是必須的jar包。

          使用Hibernate必須的jar包就是以上的這幾個,剩下的都是可選的。

          ant.jar:
          Ant編譯工具的jar包,用來編譯Hibernate源代碼的。如果你不準(zhǔn)備修改和編譯Hibernate源代碼,那么就沒有什么用,可選的jar包

          optional.jar:
          Ant的一個輔助包。

          c3p0.jar:
          C3PO是一個數(shù)據(jù)庫連接池,Hibernate可以配置為使用C3PO連接池。如果你準(zhǔn)備用這個連接池,就需要這個jar包。

          proxool.jar:
          也是一個連接池,同上。

          commons-pool.jar, commons-dbcp.jar:
          DBCP數(shù)據(jù)庫連接池,Apache的Jakarta組織開發(fā)的,Tomcat4的連接池也是DBCP。

          實(shí)際上Hibernate自己也實(shí)現(xiàn)了一個非常非常簡單的數(shù)據(jù)庫連接池,加上上面3個,你實(shí)際上可以在Hibernate上選擇4種不同的數(shù)據(jù)庫連接 池,選擇哪一個看個人的偏好,不過DBCP可能更通用一些。另外強(qiáng)調(diào)一點(diǎn),如果在EJB中使用Hibernate,一定要用App Server的連接池,不要用以上4種連接池,否則容器管理事務(wù)不起作用。

          connector.jar:
          JCA 規(guī)范,如果你在App Server上把Hibernate配置為Connector的話,就需要這個jar。不過實(shí)際上一般App Server肯定會帶上這個包,所以實(shí)際上是多余的包。

          jaas.jar:
          JAAS是用來進(jìn)行權(quán)限驗(yàn)證的,已經(jīng)包含在JDK1.4里面了。所以實(shí)際上是多余的包。

          jcs.jar:
          如果你準(zhǔn)備在Hibernate中使用JCS的話,那么必須包括它,否則就不用。

          jdbc2_0-stdext.jar:
          JDBC2.0的擴(kuò)展包,一般來說數(shù)據(jù)庫連接池會用上它。不過App Server都會帶上,所以也是多余的。

          jta.jar:
          JTA規(guī)范,當(dāng)Hibernate使用JTA的時候需要,不過App Server都會帶上,所以也是多余的。

          junit.jar:
          Junit包,當(dāng)你運(yùn)行Hibernate自帶的測試代碼的時候需要,否則就不用。

          xalan.jar, xerces.jar, xml-apis.jar:
          Xerces是XML解析器,Xalan是格式化器,xml-apis實(shí)際上是JAXP。一般App Server都會帶上,JDK1.4也包含了解析器,不過不是Xerces,是Crimson,效率比較差,不過Hibernate用XML只不過是讀取 配置文件,性能沒什么緊要的,所以也是多余的。

          凡是有該標(biāo)志的文章,都是該blog博主Caoer(草兒)原創(chuàng),凡是索引、收藏
          、轉(zhuǎn)載請注明來處和原文作者。非常感謝。

          posted on 2007-09-11 19:55 草兒 閱讀(1065) 評論(0)  編輯  收藏 所屬分類: JAVA WEB應(yīng)用
          主站蜘蛛池模板: 高清| 手机| 金溪县| 出国| 锡林郭勒盟| 葫芦岛市| 抚顺县| 巫溪县| 罗甸县| 保定市| 鄂伦春自治旗| 彭州市| 昔阳县| 古交市| 财经| 洛扎县| 宜宾县| 桂阳县| 新民市| 乌兰县| 昌邑市| 额济纳旗| 南投县| 沙洋县| 高平市| 扶绥县| 原平市| 神农架林区| 新宁县| 伊吾县| 调兵山市| 云安县| 策勒县| 射阳县| 镇平县| 利津县| 鹤峰县| 鹤壁市| 常山县| 南靖县| 宁海县|