目錄:v1.0
1.舊時的痛
2.光明來臨前的黑暗
3.歡迎救世主
1.舊時的痛
為什麼說配製無限制的spring事務管理呢,估計肯定有哪位高手看過標題之後就會奇怪,配製事務管理還要有什麼限制嗎?
當然對您這樣的高手當然是運用自如。但是還是和很多初識者甚至有很長的工作經驗的朋友的老鳥對spring配製只停留在spring1.x
階段,並且僅限於配製spring+hibernate的事務管理。
最經典的spring+hibernate的配製是這樣的:
在使用時為每個service加入事務模版,其實這種方式已經很方便了,
但是限制了使用者的視野,讓很多初學者誤認為spring的事務只針對hibernate準備的。
這是spring1.0時代的產物,深深的留下了持久層框架的烙印。
2.光明來臨前的黑暗
實際上spring提供了多種事務管理器以供使用,而其中的一種才是hibernate的,如下:
事務管理器的例項 目標
org.springframwork.jdbc.datasource.datasourcetransactionmanager
用dbc的 datasource 去管理事務
org.springframwork.orm.hibernate.hibernatetransactionmanager
當持久機制是hibernate時的事務管理器
org.springframework.orm.jdotransactionmanager
當持久機制是jdo時的事務管理器
org.springframework.transaction.jta.jtatransactionmanager
用jta管理事務
org.springframwork.orm.ojb.persistencebrokertransactionmanager
當持久機制是apache的ojb時的事務管理器
也就是說以下配製中的class使用不同的事務管理器可以應用在不同的持久層機制上,其中的
datasourcetransactionmanager是最為通用的管理器。
有很多人在論壇裡問:在hibernate中是這樣配製事務管理的,那麼在某某下是如何配製呢,問的人不深問題的本身,而是只注重於解決事情的方式上。
3.歡迎救世主
下面來介紹一下在spring2.x達到相同的通用方式,並且配製起來更簡潔和靈活的方式,當然和上面一樣通用的方式就要使用通用的資料來源(
datasource管理器
)。
你會發現根本不需要事務模版了,由正規表示式來限定對service的事務管理:pointcut="execution(* *..service.*manager.*(..))"
這樣的方式是不是使你忘記了spring中使用了什麼持久層框架,是的,這時你就自由了!~
是不是想問我用了什麼框架,我可以很負責任的告訴你是ibatis,你是不是沒有看出來呢
下面是service的配製,在service中注入dao,在dao中注入sqlmapclientfactorybean。
好了,到些為止吧。
由於個人的技術和知識水平有限,難免有疏漏之處,請指正!
Extjs TreeStore無限制載入資料的問題
ext.define mykaidun.model.sys.menusmodel ext.create ext.data.treestore url menuaction menusroleid.action reader 由於本人想一次性載入所以不想非同步載入,本人後台用的是struts2 但是後...
C RSA加密,無限制長度
rsa加密,無限制長度 rsa加密 無長度限制 public class encrypthelper 解密 public static string decrypt string encryptedinput 生成金鑰 public static void rsakey out string xml...
無限制的自由適應的邊框
前幾天改乙個東東時,看到乙個不錯的效果,可惜它是用js做的,有點複雜和麻煩。今天正好沒什麼事,就整了個用css實現的方法,感覺應該會比較實用的。一路做來都非常順利,順便考慮了下請求的問題,合併了幾張,其實還可以更優化的,不過暫時就這樣,該例僅做說明,實際應用時再update。不過做到最後成型的時候,...