1、啟用spring快取:
在配置檔案中匯入cache:命名空間。
新增配置:針對不同的快取實現配置對應的快取管理器。
2、ehcache的使用,新增jar包,然後配置ehcache.xml。配置beans.xml快取區。
3、類級別:使用@cacheable執行快取:@cacheable(value = "users")
修飾類時,可控制spring在類級別進行快取,當程式呼叫該類的任意方法時,只要傳入的引數相同,spring就會使用快取。(只要引數相同,方法不同也使用快取)
此處快取的意義是:當程式第一次呼叫該類的例項的某個方法時,spring快取機制會將該方法返回的資料放入指定的快取區——就是value屬性指定的快取區。
4、類級別的快取預設以所有的方法引數作為key來快取方法返回的資料,同乙個類不管呼叫哪個方法,只要呼叫方法的引數相同,spring就會直接使用快取區中的資料。
5、當然我們可以指定@cacheable的屬性:
value:必需屬性。可指定多個快取區的名字,將返回值放入指定的快取區。
key:通過spel表示式顯示指定快取的key。
condition:指定乙個返回boolean值的spel表示式,只有當表示式返回true時,spring才會快取方法返回值。
unless:指定乙個返回boolean值的spel表示式,只有當表示式返回true時,spring就不會快取方法返回值。
6、方法級別的快取:使用@cacheable執行快取:@cacheable(value = "users")
如果乙個類中的兩個方法指定的快取區不一樣,那麼即使引數相同,也不會使用快取。
否則,將會使用快取。
7、清除快取:@cacheevict
value:必需屬性。用於指定清除哪個快取區。
key:通過spel表示式顯示指定快取的key。
condition:指定乙個返回boolean值的spel表示式,只有當表示式返回true時,spring才會清除快取。
allentries:指定是否清空整個快取區。\beforeinvocaion:指定是否在執行方法之前清除快取。預設是方法完成之後清除。
8、spring事務:spring的事務策略是通過platformtransactionmanager介面體現的,該介面時spring事務策略的核心。提供了三個抽象方法,並且都丟擲異常transactionexception:
transactionstatus gettransaction(transactiondefinition definition)//平台無關的獲得事務的方法
void commit(transactionstatus status)//平台無關的事務提交的方法
void rollback(transactionstatus status)//平台無關的事務回滾的方法
9、spring的事務機制是一種典型的策略模式,它只代表介面,不知道底層的具體管理事務過程。
10、transactiondefinition 介面定義了乙個事務規則:
事務隔離:當前事務與其他事務的隔離程度。
事務傳播:在事務中執行的**都會在當前事務中執行。
事務超時:事務在超時之前能執行多久。
唯讀狀態:唯讀事務不修改資料。
11、transactionstatus 代表了事務本身,它提供了簡單的控制事務執行和查詢事務狀態的方法,這些方法在所有api中都是相同的。
boolean isnewtransaction()//判斷事務是否為新建的事務
void setrollbackonly()//設定事務回滾
boolean isrollbackonly()//查詢事務是否已有回滾標誌
12、使用@transactional
該註解可以用於修飾spring bean類,也可以修飾bean類中的某個方法。
修飾類時,表示事務設定對整個bean類起作用;修飾方法時,表示事務設定對該方法起作用。
屬性有:
isolation:用於指定事務的隔離級別。預設為底層事務的隔離級別。
norollbackfor:指定遇到特定異常時強制不回滾事務。
norollbackforclassname:指定遇到特定的多個異常時強制不回滾事務。
propagation:指定事務傳播行為。
readonly:指定事務是否唯讀。
rollbackfor:指定遇到特定異常時強制回滾事務。
rollbackforclassname:指定遇到特定的多個異常時強制回滾事務。
timeout:指定事務的超時時長。
spring學習總結 第四講
1 啟用spring快取 在配置檔案中匯入cache 命名空間。新增配置 針對不同的快取實現配置對應的快取管理器。2 ehcache的使用,新增jar包,然後配置ehcache.xml。配置beans.xml快取區。3 類級別 使用 cacheable執行快取 cacheable value use...
Spring學習總結
xx list,arrays setmap properties null list setmap props xx xx xx xx xx 注意 autowiring能夠與顯式的wiring一起使用。初始化屬性 public inte ce pointcutpublic inte ce class...
Spring學習總結
注 我是參考 spring實戰 這本書的 一 2.1中我們要給juggler加乙個吟詩的功能,我們不可能說改變perform方法吧,那又有新的功能,我們又得改變這個方法,那再改變呢?頻繁的修改呢?我們不可能頻繁的修改這個方法。那再寫乙個poem介面,這樣子我們只要新的能夠吟詩的poticjuggle...