新聞中心
spring事務(wù)開啟后 數(shù)據(jù)庫數(shù)據(jù)能被修改么?
spring事務(wù)開啟后,數(shù)據(jù)庫數(shù)據(jù)能被修改, 關(guān)于某操作中開啟事務(wù)后,動(dòng)態(tài)切換數(shù)據(jù)源機(jī)制失效的問題,暫時(shí)想到一個(gè)取巧的方法,在Spring聲明式事務(wù)配置中,可對(duì)不改變數(shù)據(jù)庫數(shù)據(jù)的方法采用不支持事務(wù)的配置。

這意味著只要使得spring事務(wù)的功能開啟失效后,就能使得數(shù)據(jù)庫的數(shù)據(jù)被修改。
對(duì)單純查詢數(shù)據(jù)的操作設(shè)置為不支持事務(wù),可避免一些動(dòng)態(tài)數(shù)據(jù)源切換失效的場(chǎng)景。如本人在Shiro權(quán)限管理開發(fā)中,所有的前臺(tái)頁面需要通過jsp的shiro權(quán)限控制標(biāo)簽控制頁面的一些顯示效果,此時(shí)很可能因業(yè)務(wù)需要,查詢顯示的數(shù)據(jù)和控制權(quán)限的數(shù)據(jù)不在同一數(shù)據(jù)庫中,需要?jiǎng)討B(tài)切換數(shù)據(jù)庫鏈接,頁面初始化顯示的數(shù)據(jù),對(duì)應(yīng)的都是查詢數(shù)據(jù)的操作,判斷當(dāng)前用戶是否有權(quán)限,也是查詢權(quán)限資源的操作,故而私認(rèn)為可選擇上面的取消查詢操作的事務(wù)支持,即可避免動(dòng)態(tài)切換數(shù)據(jù)源失效的情景。
出現(xiàn)多數(shù)據(jù)源動(dòng)態(tài)切換失敗的原因是因?yàn)樵谑聞?wù)開啟后,數(shù)據(jù)源就不能再進(jìn)行隨意切換了,也就是說,一個(gè)事務(wù)對(duì)應(yīng)一個(gè)數(shù)據(jù)源。
利用這一點(diǎn),就能夠嘗試去破壞數(shù)據(jù)源,從而實(shí)現(xiàn)修改。
那么傳統(tǒng)的Spring管理事務(wù)是放在Service業(yè)務(wù)層操作的,所以更換數(shù)據(jù)源的操作要放在這個(gè)操作之前進(jìn)行。也就是切換數(shù)據(jù)源操作放在Controller層,可是這樣操作會(huì)造成Controller層代碼混亂的結(jié)果。故而想到的解決方案是將事務(wù)管理在數(shù)據(jù)持久 (Dao層) 開啟,切換數(shù)據(jù)源的操作放在業(yè)務(wù)層進(jìn)行操作,就可在事務(wù)開啟之前順利進(jìn)行數(shù)據(jù)源切換,不會(huì)再出現(xiàn)切換失敗了。
1. 能夠被修改。
2. 因?yàn)镾pring事務(wù)的開啟并不會(huì)阻止對(duì)數(shù)據(jù)庫數(shù)據(jù)的修改操作。
Spring事務(wù)的作用是保證一組操作要么全部成功提交,要么全部失敗回滾,以保持?jǐn)?shù)據(jù)的一致性和完整性。
在事務(wù)提交之前,對(duì)數(shù)據(jù)庫數(shù)據(jù)的修改操作是可以執(zhí)行的。
3. 但是需要注意的是,如果在事務(wù)提交之前發(fā)生了異常或者事務(wù)被回滾,那么對(duì)數(shù)據(jù)庫數(shù)據(jù)的修改操作將會(huì)被撤銷,數(shù)據(jù)庫中的數(shù)據(jù)將恢復(fù)到事務(wù)開始之前的狀態(tài)。
因此,在使用Spring事務(wù)時(shí),需要謹(jǐn)慎處理事務(wù)的提交和回滾,以確保數(shù)據(jù)的正確修改。
到此,以上就是小編對(duì)于shiro攔截路徑的問題就介紹到這了,希望這1點(diǎn)解答對(duì)大家有用。
本文名稱:shiro 攔截文件 上傳
文章源于:http://fisionsoft.com.cn/article/dheppds.html


咨詢
建站咨詢
