為了保證資料的一致性,在程式設計的時候往往需要引入事務這個概念。事務有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...