springboot 整合 ehcache
阿新 • • 發佈:2018-12-06
1.pom檔案
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.2.RELEASE</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-cache</artifactId> </dependency> <!-- ehcache快取 --> <dependency> <groupId>net.sf.ehcache</groupId> <artifactId>ehcache</artifactId> <version>2.9.1</version><!--$NO-MVN-MAN-VER$ --> </dependency> </dependencies>
2./src/main/resouces/ehcache.xml
<?xml version="1.0" encoding="UTF-8"?> <ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd"> <!-- 磁碟快取位置 --> <diskStore path="d://ehcache"/> <!-- 預設快取 --> <defaultCache maxEntriesLocalHeap="10000" eternal="false" timeToIdleSeconds="120" timeToLiveSeconds="120" maxEntriesLocalDisk="10000000" diskExpiryThreadIntervalSeconds="120" memoryStoreEvictionPolicy="LRU"> <persistence strategy="localTempSwap"/> </defaultCache> <!-- helloworld快取 --> <cache name="testcache" maxElementsInMemory="1000" eternal="false" timeToIdleSeconds="5" timeToLiveSeconds="5" overflowToDisk="false" memoryStoreEvictionPolicy="LRU"/> </ehcache>
3.application.properties
spring.cache.ehcache.config=classpath:ehcache.xml
4.CacheService
package com.knife.EhcacheBoot; import org.springframework.cache.annotation.CacheConfig; import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.CachePut; import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Repository; @Repository @CacheConfig(cacheNames = {"testcache"}) public class CacheService { @Cacheable public String save(String typeId) { System.out.println("save()執行了============="); return "模擬資料庫儲存"; } @CachePut public String update(String typeId) { System.out.println("update()執行了============="); return "模擬資料庫更新"; } @CacheEvict public String delete(String typeId) { System.out.println("delete()執行了============="); return "模擬資料庫刪除"; } @Cacheable public String select(String typeId) { System.out.println("select()執行了============="); return "模擬資料庫查詢"; } }
5.Controller
package com.knife.EhcacheBoot;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class CachController {
@Autowired
private CacheService service;
@RequestMapping(value = { "tsave" })
@ResponseBody
public String tsave(String key) {
return service.save(key);
}
@RequestMapping(value = { "tselect" })
@ResponseBody
public String tselect(String key) {
return service.select(key);
}
@RequestMapping(value = { "tupdate" })
@ResponseBody
public String tupdate(String key) {
return service.update(key);
}
@RequestMapping(value = { "tdelete" })
@ResponseBody
public String tdelete(String key) {
return service.delete(key);
}
}