Hibernate一共包括了個jar包令人眼花缭亂本文將詳細講解Hibernate每個jar包的作用便於你在應用中根據自己的需要進行取捨
下載Hibernate例如穩定版本解壓縮可以看到一個hibernatejar和lib目錄下有個jar包
hibernatejar:
Hibernate的庫沒有什麼可說的必須使用的jar包
cglibasmjar:
CGLIB庫Hibernate用它來實現PO字節碼的動態生成非常核心的庫必須使用的jar包
domjjar:
domj是一個Java的XML API類似於jdom用來讀寫XML文件的domj是一個非常非常優秀的Java XML API具有性能優異功能強大和極端易用使用的特點同時它也是一個開放源代碼的軟件可以在SourceForge上找到它在IBM developerWorks上面可以找到一篇文章對主流的Java XML API進行的性能功能和易用性的評測domj無論在那個方面都是非常出色的我早在將近兩年之前就開始使用domj直到現在如今你可以看到越來越多的Java軟件都在使用domj來讀寫XML特別值得一提的是連Sun的JAXM也在用domj這是必須使用的jar包Hibernate用它來讀寫配置文件
odmgjar:
ODMG是一個ORM的規范Hibernate實現了ODMG規范這是一個核心的庫必須使用的jar包
commonscollectionsjar
Apache Commons包中的一個包含了一些Apache開發的集合類功能比javautil*強大必須使用的jar包
commonsbeanutilsjar
Apache Commons包中的一個包含了一些Bean工具類類必須使用的jar包
commonslangjar:
Apache Commons包中的一個包含了一些數據類型工具類是javalang*的擴展必須使用的jar包
commonsloggingjar:
Apache Commons包中的一個包含了日志功能必須使用的jar包這個包本身包含了一個Simple Logger但是功能很弱在運行的時候它會先在CLASSPATH找logj如果有就使用logj如果沒有就找JDK帶的javautillogging如果也找不到就用Simple Loggercommonsloggingjar的出現是一個歷史的的遺留的遺憾當初Apache極力游說Sun把logj加入JDK然而JDK項目小組已經接近發布JDK產品的時間了因此拒絕了Apache的要求使用自己的javautillogging這個包的功能比logj差的很遠性能也一般
後來Apache就開發出來了commonsloggingjar用來兼容兩個logger因此用commonsloggingjar寫的log程序底層的Logger是可以切換的你可以選擇logjjavautillogging或者它自帶的Simple Logger不過我仍然強烈建議使用logj因為logj性能很高log輸出信息時間幾乎等於Systemout而處理一條log平均只需要us你可以在Hibernate的src目錄下找到Hibernate已經為你准備好了的logj的配置文件你只需要到Apache 網站去下載logj就可以了commonsloggingjar也是必須的jar包
使用Hibernate必須的jar包就是以上的這幾個剩下的都是可選的
antjar:
Ant編譯工具的jar包用來編譯Hibernate源代碼的如果你不准備修改和編譯Hibernate源代碼那麼就沒有什麼用可選的jar包
optionaljar
Ant的一個輔助包
cpjar
CPO是一個數據庫連接池Hibernate可以配置為使用CPO連接池如果你准備用這個連接池就需要這個jar包
proxooljar
也是一個連接池同上
commonspooljar commonsdbcpjar:
DBCP數據庫連接池Apache的Jakarta組織開發的Tomcat的連接池也是DBCP
實際上Hibernate自己也實現了一個非常非常簡單的數據庫連接池加上上面個你實際上可以在Hibernate上選擇種不同的數據庫連接池選擇哪一個看個人的偏好不過DBCP可能更通用一些另外強調一點如果在EJB中使用Hibernate一定要用App Server的連接池不要用以上種連接池否則容器管理事務不起作用
connectorjar:
JCA 規范如果你在App Server上把Hibernate配置為Connector的話就需要這個jar不過實際上一般App Server肯定會帶上這個包所以實際上是多余的包
jaasjar:
JAAS是用來進行權限驗證的已經包含在JDK裡面了所以實際上是多余的包
jcsjar
如果你准備在Hibernate中使用JCS的話那麼必須包括它否則就不用
jdbc_stdextjar:
JDBC的擴展包一般來說數據庫連接池會用上它不過App Server都會帶上所以也是多余的
jtajar
JTA規范當Hibernate使用JTA的時候需要不過App Server都會帶上所以也是多余的
junitjar:
Junit包當你運行Hibernate自帶的測試代碼的時候需要否則就不用
xalanjar xercesjar xmlapisjar:
Xerces是XML解析器Xalan是格式化器xmlapis實際上是JAXP一般App Server都會帶上JDK也包含了解析器不過不是Xerces是Crimson效率比較差不過Hibernate用XML只不過是讀取配置文件性能沒什麼緊要的所以也是多余的
From:http://tw.wingwit.com/Article/program/Java/ky/201311/28745.html