成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

詳述Hibernate架構(Architecture)

開發 后端
運行時Hibernate架構,由于Hibernate非常靈活,且支持數種應用方案,所以我們這只描述一下兩種極端的情況。“輕型”的架構方案,要求應用程序提供自己的JDBC 連接并管理自己的事務

要學好Hibernate,首先要了解Hibernate架構,可能大家對Hibernate架構還不太明白,沒有關系,看完本文你肯定有不少收獲,希望本文能教會你。

1. 架構概況(Overview)

一個非常簡要的Hibernate架構的概要圖:

預覽圖片

從這個圖可以看出,Hibernater使用數據庫和配置信息來為應用程序提供持久化服務(以及持久的對象)。

我們來更詳細地看一下運行時Hibernate架構。由于Hibernate非常靈活,且支持數種應用方案,所以我們這只描述一下兩種極端的情況。“輕型”的架構方案,要求應用程序提供自己的JDBC 連接并管理自己的事務。這種方案使用了Hibernate API的最小子集:

預覽圖片

“全面解決”的架構方案,將應用層從底層的JDBC/JTA API中抽象出來,而讓Hibernate來處理這些細節。

預覽圖片

Heres some definitions of the objects in the diagrams: 圖中各個對象的定義如下:

SessionFactory (org.hibernate.SessionFactory)
針對單個數據庫映射關系經過編譯后的內存鏡像,它也是線程安全的(不可變)。 它是生成Session的工廠,本身要用到ConnectionProvider。 該對象可以在進程或集群的級別上,為那些事務之間可以重用的數據提供可選的二級緩存。

Session (org.hibernate.Session)
表示應用程序與持久儲存層之間交互操作的一個單線程對象,此對象生存期很短。 其隱藏了JDBC連接,也是Transaction的工廠。 其會持有一個針對持久化對象的必選(第一級)緩存,在遍歷對象圖或者根據持久化標識查找對象時會用到。

持久的對象及其集合
帶有持久化狀態的、具有業務功能的單線程對象,此對象生存期很短。 這些對象可以是普通的JavaBeans/POJO,唯一特殊的是他們正與(僅僅一個)Session相關聯。 這個Session被關閉的同時,這些對象也會脫離持久化狀態,可以被應用程序的任何層自由使用。 (例如,用作跟表示層打交道的數據傳輸對象data transfer object。)

瞬態(transient)以及脫管(detached)的對象及其集合
持久類的沒有與Session相關聯的實例。 他們可能是在被應用程序實例化后,尚未進行持久化的對象。 也可能是因為實例化他們的Session已經被關閉而脫離持久化的對象。

事務Transaction (org.hibernate.Transaction)
(可選的)應用程序用來指定原子操作單元范圍的對象,它是單線程的,生存期很短。 它通過抽象將應用從底層具體的JDBC、JTA以及CORBA事務隔離開。 某些情況下,一個Session之內可能包含多個Transaction對象。 盡管是否使用該對象是可選的,但是事務邊界的開啟與關閉(無論是使用底層的API還是使用Transaction對象)是必不可少的。

ConnectionProvider (org.hibernate.connection.ConnectionProvider)
(可選的)生成JDBC連接的工廠(同時也起到連接池的作用)。 它通過抽象將應用從底層的Datasource或DriverManager隔離開。 僅供開發者擴展/實現用,并不暴露給應用程序使用。

TransactionFactory (org.hibernate.TransactionFactory)
(可選的)生成Transaction對象實例的工廠。 僅供開發者擴展/實現用,并不暴露給應用程序使用。

擴展接口
Hibernate提供了很多可選的擴展接口,你可以通過實現它們來定制你的持久層的行為。 具體請參考API文檔。


在一個“輕型”的架構中,應用程序可能繞過 Transaction/TransactionFactory 以及 ConnectionProvider 等API直接跟JTA或JDBC打交道。

2. 實例狀態

一個持久化類的實例可能處于三種不同狀態中的某一種。 這三種狀態的定義則與所謂的持久化上下文(persistence context)有關。Hibernate的Session對象就是這個所謂的持久化上下文:

◆瞬態(transient)該實例從未與任何持久化上下文關聯過。它沒有持久化標識(相當于主鍵)。

◆持久(persistent) 實例目前與某個持久化上下文有關聯。 它擁有持久化標識(相當于主鍵),并且可能在數據庫中有一個對應的行。 對于某一個特定的持久化上下文,Hibernate保證持久化標識與Java標識(其值代表對象在內存中的位置)等價。

◆脫管(detached) 實例曾經與某個持久化上下文發生過關聯,不過那個上下文被關閉了, 或者這個實例是被序列化(serialize)到這個進程來的。 它擁有持久化標識,并且在數據庫中可能存在一個對應的行。 對于脫管狀態的實例,Hibernate不保證任何持久化標識和Java標識的關系。

3. JMX整合

JMX是管理Java組件(Java components)的J2EE規范。 Hibernate 可以通過一個JMX標準服務來管理。 在這個發行版本中,我們提供了一個MBean接口的實現,即 org.hibernate.jmx.HibernateService。

想要看如何在JBoss應用服務器上將Hibernate部署為一個JMX服務的例子,您可以參考JBoss用戶指南。 我們現在說一下在Jboss應用服務器上,使用JMX來部署Hibernate的好處:

Session管理: Hibernate的Session對象的生命周期可以 自動跟一個JTA事務邊界綁定。這意味著你無需手工開關Session了, 這項 工作會由JBoss EJB 攔截器來完成。你再也不用擔心你的代碼中的事務邊界了(除非你想利用Hibernate提供 的Transaction API來自己寫一個便于移植的的持久層)。 你現在要通過 HibernateContext來操作Session了。

HAR 部署: 通常情況下,你會使用JBoss的服務部署描述符(在EAR或/和SAR文件中)來部署Hibernate JMX服務。 這種部署方式支持所有常見的Hibernate SessionFactory的配置選項。 不過,你需在部署描述符中,列出你所有的映射文件的名字。如果你使用HAR部署方式, JBoss 會自動探測出你的HAR文件中所有的映射文件。

這些選項更多的描述,請參考JBoss 應用程序用戶指南。

將Hibernate以部署為JMX服務的另一個好處,是可以查看Hibernate的運行時統計信息。“ Hibernate的統計(statistics)機制 ”.

4. 對JCA的支持

Hibernate也可以被配置為一個JCA連接器(JCA connector)。更多信息請參看網站。請注意,Hibernate對JCA的支持,仍處于實驗性質。

【編輯推薦】

  1. 簡述Hibernate中加載并存儲對象
  2. Hibernate傳播性持久化攻略
  3. 深入了解Hibernate自動狀態檢測
  4. 教你如何在Hibernate中實例化集合和代理
  5. Hinerbate單端關聯代理頗析
責任編輯:仲衡 來源: redsaga
相關推薦

2009-06-02 14:24:32

Hibernate單元測試HSQLDB

2009-09-21 12:50:34

Hibernate架構

2015-05-25 13:44:42

微服務微服務架構Docker

2023-07-19 10:09:18

架構倉庫SSD

2010-05-07 14:27:16

IPVS負載均衡

2010-05-06 15:00:58

集群負載均衡

2010-07-12 14:41:35

UDP協議

2010-09-26 14:16:26

DHCP協議應用

2010-09-01 17:11:01

DHCP中繼代理

2022-11-29 20:32:07

2010-02-07 09:52:22

Android 插件

2011-08-25 15:40:52

MPLS LDP協議LSRLDP

2011-08-25 11:52:35

2011-08-22 15:03:17

nagios

2015-07-08 14:18:44

可擴展架構設計云計算

2013-05-28 11:04:42

Android開發Android編譯源碼編譯

2023-10-09 08:20:12

整潔架構軟件設計原則

2009-11-26 15:20:01

路由器功能

2009-12-17 13:28:41

Visual Stud

2010-03-08 18:07:02

Linux后臺運行命令
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美v免费 | 91久色 | 久久高清| 天天躁人人躁人人躁狂躁 | 中文一区 | 999热精品视频 | 99免费在线视频 | 国产精品视频一区二区三 | av毛片| 青春草91 | 毛片视频免费观看 | 91高清在线观看 | 亚洲免费精品 | av第一页 | 欧美男人天堂 | 色欧美片视频在线观看 | 国产一区二区久久 | 日本久久一区二区三区 | 超碰婷婷| 亚洲精品在线国产 | 婷婷色婷婷| 国产一区二区三区四区 | 国产激情精品一区二区三区 | 欧美精品一区在线 | 国产黄色av网站 | 久久精品国产一区 | 精品国产精品三级精品av网址 | 精品国产不卡一区二区三区 | 久久久妇女国产精品影视 | 宅女噜噜66国产精品观看免费 | 久久乐国产精品 | 国产乱码精品一区二区三区五月婷 | 国产亚洲欧美在线 | 亚洲激情在线视频 | 99爱在线视频 | 中文字幕在线免费观看 | 国产精品国产精品国产专区不片 | 成人h视频在线观看 | 三级成人片 | 欧美久久久久久 | 黄色av网站免费看 |