springboot ehcache
直接上代码
一,POM
org.springframework.boot spring-boot-starter-cache net.sf.ehcache ehcache 2.10.8
二,配置xml
ehcache.xml
<?xml version="1.0" encoding="UTF-8"?>xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd"> <defaultCache maxElementsInMemory="10000" timeToIdleSeconds="120" timeToLiveSeconds="120" maxElementsOnDisk="10000000" diskExpiryThreadIntervalSeconds="120" memoryStoreEvictionPolicy="LRU"> timeToIdleSeconds="5" timeToLiveSeconds="5" maxEntriesLocalHeap="10000" maxEntriesLocalDisk="10000000" diskExpiryThreadIntervalSeconds="120" overflowToDisk="false" memoryStoreEvictionPolicy="LRU">
application.yml:
spring:
cache:
type: ehcache
ehcache:
config: classpath:config/ehcache.xml
启动类:
添加 @EnableCaching
@SpringBootApplication @EnableCaching public class ReportApplication { public static void main(String[] args) { SpringApplication.run(ReportApplication.class, args); } }
三,创建Service / Impl
PS:必须有Service接口,不然缓存失效
Service:
public interface TestService { String testCache(String str); }
Impl:
@Service public class TestImpl implements TestService { @Cacheable(value = "testcache", key = "#str") @Override public String testCache(String str) { int a = new Random().nextInt(); return a+""; } }
四,调用
@RestController @RequestMapping("api/test") public class TestPController { @Autowired TestService testService; @ApiOperation(value = "report test") @RequestMapping(value = "test", method = RequestMethod.POST) public ApiResponsetest(@RequestBody ApiRequest req) throws Exception { String a=testService.testCache(req.getData()); return new ApiResponse<>().Success(a); } }