我的 api 有时需要缓存数据有时不需要?
my api sometimes need cache data sometimes and sometimes not required?
我的服务有时需要缓存数据,有时需要缓存数据,有时不需要,所以我想编写一个方法,在不需要时清除缓存并且#could someone help me creating a restful, java 8 spring开机#
Spring 提供了可以帮助您实现该目的的注释。如果您有条件地需要缓存,您可以使用 @Cacheable
注释的 condition
参数,例如:
@Cacheable(cacheNames="stuff", condition="#cached")
public List<Stuff> findAll(boolean cached) {
// ...
}
在这种情况下,如果您调用 findAll(true)
,它将 return 缓存的结果,而如果您调用 findAll(false)
,它将表现得好像注释不存在一样.
从中创建 REST API 并不难,因为您的 cached
参数也可以来自请求参数:
@GetMapping("/api/stuff")
@Cacheable(cacheNames="stuff", condition="#cached")
public List<Stuff> findAll(@RequestParam boolean cached) {
// ...
}
另外,如果要清除缓存,可以使用@CacheEvict
注解:
@CacheEvict("stuff")
public void clearCache() {
}
和以前一样,你可以把它变成一个端点:
@DeleteMapping("/api/stuff/cache")
@CacheEvict("stuff")
@ResponseStatus(HttpStatus.NO_CONTENT)
public void clearCache() {
}
我的服务有时需要缓存数据,有时需要缓存数据,有时不需要,所以我想编写一个方法,在不需要时清除缓存并且#could someone help me creating a restful, java 8 spring开机#
Spring 提供了可以帮助您实现该目的的注释。如果您有条件地需要缓存,您可以使用 @Cacheable
注释的 condition
参数,例如:
@Cacheable(cacheNames="stuff", condition="#cached")
public List<Stuff> findAll(boolean cached) {
// ...
}
在这种情况下,如果您调用 findAll(true)
,它将 return 缓存的结果,而如果您调用 findAll(false)
,它将表现得好像注释不存在一样.
从中创建 REST API 并不难,因为您的 cached
参数也可以来自请求参数:
@GetMapping("/api/stuff")
@Cacheable(cacheNames="stuff", condition="#cached")
public List<Stuff> findAll(@RequestParam boolean cached) {
// ...
}
另外,如果要清除缓存,可以使用@CacheEvict
注解:
@CacheEvict("stuff")
public void clearCache() {
}
和以前一样,你可以把它变成一个端点:
@DeleteMapping("/api/stuff/cache")
@CacheEvict("stuff")
@ResponseStatus(HttpStatus.NO_CONTENT)
public void clearCache() {
}