【Jar 認識】

Antrl:  用來 生成語法樹

commons-collections:  對 apache-collection 的一個補充

commons-logging:   是一個第三方日誌庫,它是由Apache創建的日誌模塊。特色是,它可以掛接不同的日誌系統,並通過配置文件指定掛接的日誌系統。默認情況下,Commons Loggin自動搜索並使用Log4j(Log4j是另一個流行的日誌系統),如果沒有找到Log4j,再使用JDK Logging。

commons-logging-api:

dom4j  是一個Java的XML API,是jdom的升級品,用來讀寫XML文件的。

ehcache  : 是一個純Java的分佈式的進程內緩存框架,具有快速、精幹等特點,主要面向通用緩存,Java EE和輕量級容器。它具有內存和磁盤存儲,緩存加載器,緩存擴展,緩存異常處理程序,一個gzip緩存servlet過濾器,支持REST和SOAP api等特點,是Hibernate中默認的CacheProvider;
 

hibernate-jpa: 

  JPA通過JDK 5.0註解或XML描述對象-關係表的映射關係,並將運行期的實體對象持久化到數據庫中。
  JPA的出現?
  JPA的出現有兩個原因:
  其一,簡化現有Java EE和Java SE應用的對象持久化的開發工作;
  其二,Sun希望整合對ORM技術,實現持久化領域的統一。

1.1.JPA提供的技術
  (1)ORM映射元數據
  JPA支持XML和JDK 5.0註解兩種元數據的形式,元數據描述對象和表之間的映射關係,框架據此將實體對象持
  久化到數據庫表中;
  (2)JPA 的API
  用來操作實體對象,執行CRUD操作,框架在後臺替我們完成所有的事情,開發者從繁瑣的JDBC和SQL代碼中解
  脫出來。
  (3)查詢語言
  通過面向對象而非面向數據庫的查詢語言查詢數據,避免程序的SQL語句緊密耦合。 

 

hibernate :  

 JPA是需要Provider來實現其功能的,Hibernate就是JPA Provider中很強的一個。從功能上來說,JPA現在就是Hibernate功能的一個子集。Hibernate 從3.2開始,就開始兼容JPA。Hibernate3.2獲得了Sun TCK的 JPA(Java  Persistence API) 兼容認證。

 

JPA和Hibernate之間的關係,可以簡單的理解爲JPA是標準接口,Hibernate是實現。

  那麼Hibernate是如何實現與JPA 的這種關係的呢?

  Hibernate主要是通過三個組件來實現的,及hibernate-annotation、hibernate-entitymanager和hibernate-core。

  (1)hibernate-annotation是Hibernate支持annotation方式配置的基礎,它包括了標準的JPA annotation以及  Hibernate自身特殊功能的annotation。

  (2)hibernate-core是Hibernate的核心實現,提供了Hibernate所有的核心功能。

  (3)hibernate-entitymanager實現了標準的JPA,可以把它看成hibernate-core和JPA之間的適配器,它並不直接提供ORM的功能,而是對hibernate-core進行封裝,使得Hibernate符合JPA的規範。

總的來說,JPA是規範,Hibernate是框架,JPA是持久化規範,而Hibernate實現了JPA。

 

javassist :  是一個開源的分析、編輯和創建Java字節碼的類庫,可以直接編輯和生成Java生成的字節碼。相對於bcel, asm等這些工具,開發者不需要了解虛擬機指令,就能動態改變類的結構,或者動態生成類。javassist簡單易用, 快速。

jta:   即Java Transaction API,JTA允許應用程序執行分佈式事務處理——在兩個或多個網絡計算機資源上訪問並且更新數據。JDBC驅動程序的JTA支持極大地增強了數據訪問能力。

 

slf4j-api  : 

前面介紹了Commons Logging和Log4j這一對好基友,它們一個負責充當日誌API,一個負責實現日誌底層,搭配使用非常便於開發。

有的童鞋可能還聽說過SLF4J和Logback。這兩個東東看上去也像日誌,它們又是啥?

其實SLF4J類似於Commons Logging,也是一個日誌接口,而Logback類似於Log4j,是一個日誌的實現。

爲什麼有了Commons Logging和Log4j,又會蹦出來SLF4J和Logback?這是因爲Java有着非常悠久的開源歷史,不但OpenJDK本身是開源的,而且我們用到的第三方庫,幾乎全部都是開源的。開源生態豐富的一個特定就是,同一個功能,可以找到若干種互相競爭的開源庫。

因爲對Commons Logging的接口不滿意,有人就搞了SLF4J。因爲對Log4j的性能不滿意,有人就搞了Logback。

logger.info("Set score {} for Person {} ok.", score, p.getName());

SLF4J的日誌接口傳入的是一個帶佔位符的字符串,用後面的變量自動替換佔位符,所以看起來更加自然。

 

 

 

 

....

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章