歡迎查看Java開發之上帝之眼系列教程,若是您正在爲Java後端龐大的體系所困擾,若是您正在爲各類繁出不窮的技術和各類框架所迷茫,那麼本系列文章將帶您窺探Java龐大的體系。本系列教程但願您能站在上帝的角度去觀察(瞭解)Java體系。使Java的各類後端技術在你心中模塊化;讓你在工做中能將Java各個技術瞭然於心;可以即插即用。本章咱們來一塊兒瞭解Spring中咱們如何使用緩存。html
緩存能夠存儲經常使用到的信息,每次須要的時候咱們均可以從緩存中獲取,本章咱們一塊兒來進行了解Spring的緩存抽象.儘管Spring沒有提供任何的緩存的實現,可是它對緩存功能提供了聲明式的支持,可以與多種流行的緩存進行集成java
咱們通常在Spring項目中使用緩存功能咱們須要對Spring項目進行一些相關的配置,流程以下git
JavaConfig配置啓用github
@Configuration @EnableCaching public class SpringCacheConfig { }
XML配置啓用spring
<!--啓用緩存--> <cache:annotation-driven/>
JavaConfig配置緩存管理器後端
@Bean public CacheManager cacheManager() { return new ConcurrentMapCacheManager(); }
XML配置緩存管理器緩存
<!--聲明緩存管理器--> <bean id="cacheManager" class="org.springframework.cache.concurrent.ConcurrentMapCacheManager"/>
咱們常常在項目中使用註解做用在方法上,使其應用緩存,常見的註解以下框架
註解 | 描述 |
---|---|
@Cacheable | 先查緩存,若是緩存沒有調用方法,將返回值放入緩存中 |
@CachePut | 始終都會將返回值放入緩存中 |
@CacheEvict | 在緩存中清除一個或者多個條目 |
@Caching | 分組的註解,可以同時應用多個其餘的緩存註解 |
使用示例:查詢緩存模塊化
@Cacheable(value = "UserCache", key = "#root.args[0]") User getUser(String username);
使用示例:保存緩存code
@CachePut(value = "UserCache", key = "#result.username") User save(User user);
使用示例:移除緩存
@CacheEvict("UserCache") void remove(String username);
本章完整工程實例代碼下載地址:完整項目演示工程點擊下載