Spring中如何配置Hibernate事務

2021-07-05 07:20:06 字數 1626 閱讀 1382

為了保證資料的一致性,在程式設計的時候往往需要引入事務這個概念。事務有4個特性:原子性、一致性、隔離性、永續性。

事務的種類有兩種:程式設計式事務和宣告式事務。程式設計式事務就是將事務處理放在程式中,而宣告式事務則是通過配置檔案或者註解進行操作。

在spring中有宣告式事務的概念,通過和hibernate類似框架的整合,可以很好的完成宣告式事務。

其實,不論在spring中有幾種配置hibernate事務的方法,都逃不出一下幾條:

1.配置sessionfactory

2.配置事務容器

3.配置事務規則

4.配置事務入口

後面一共為大家提供4種配置hibernate事務的方法。

首先說下配置sessionfactory,配置sessionfactory有兩種方式,一種是通過配置hibernate.cfg.xml檔案的位置來配置sessionfactory,另一種就是在spring配置檔案中,手動配置資料來源。

下面是兩種配置sessionfactory的方式(第二種配置需要額外引入兩個包:commons-dbcp、commons-pool)

?

至此hibernate就成功的將sessionfactory交給了spring來管理。現在再來看spring是怎樣管理hibernate事務的吧。

第一種方式,利用tx標籤配置事務。

update

第二種,用**進行配置

propagation_required,-exception

propagation_required,+myexception

propagation_required

readonly

第三種,利用***

propagation_required,-exception

propagation_required,+myexception

propagation_required

readonly

transactioninterceptor

*dao

?

第四種,利用註解。

首先,在配置檔案中寫入下面語句,開啟註解功能

?

然後用@transactional對類或者方法進行標記,如果標記到類上,那麼次類中所有方法都進行事務回滾處理,在類中定義transactional的時候,它有propagation、rollbackfor、norollbackfor等屬性,此屬性是用來定義事務規則,而定義到哪這個就是事務入口。

縱觀以上四種在spring中配置hibernate事務的方法,其核心都是一樣的,不同的只是實現的方式而已。所以看到這,這篇博文中你只需要記住4句話,就可以輕鬆理解在spring中配置hibernate事務的核心:

1.配置sessionfactory

2.配置事務容器

3.配置事務規則

4.配置事務入口

Quartz 在 Spring 中如何動態配置時間

在專案中有乙個需求,需要靈活配置排程任務時間,並能自由啟動或停止排程。有關排程的實現我就第一就想到了quartz這個開源排程元件,因為很多專案使用過,spring結合quartz靜態配置排程任務時間,非常easy。比如 每天凌晨幾點定時執行乙個程式,這只要在工程中的spring配置檔案中配置好spr...

新手如何配置spring

這裡以4.2為例子 spring framework 4.2.1.release dist.zip 如果你只需要基本的beans ioc aop context 這四個spring的核心包 spring的其他包為企業應用擴充套件包 另外說明 spring需要依賴apache的common loggi...

spring中 shiro logout 配置方式

spring中 shiro logout 配置方式有兩種方式實現logout 1.普通的action中 實現自己的logout方法,取到subject,然後logout 這種需要在shirofilte ctorybean 中配置 filterchaindefinitions 對應的action的ur...