spring 的 @Cacheable 如何使用
时间: 2023-07-26 17:27:06 浏览: 91
详解Spring缓存注解@Cacheable,@CachePut , @CacheEvict使用
@Cacheable 是 Spring 框架中用于实现缓存的注解,可以将方法的返回结果缓存起来,同样的方法在下一次调用时可以直接返回缓存中的结果,从而加快方法的执行速度。
使用 @Cacheable 注解,需要在 Spring 配置文件中配置缓存管理器,例如使用 Ehcache 作为缓存管理器配置如下:
```xml
<bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheCacheManager">
<property name="cacheManager" ref="ehcache"/>
</bean>
<bean id="ehcache" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
<property name="configLocation" value="classpath:ehcache.xml"/>
</bean>
```
然后在需要使用缓存的方法上添加 @Cacheable 注解,如下所示:
```java
@Cacheable(value = "userCache", key = "#userId")
public User findUserById(Long userId) {
// 从数据库中获取用户信息
User user = userDao.findUserById(userId);
return user;
}
```
其中,value 属性表示缓存的名称,key 属性表示缓存的键,即方法参数。在方法执行时,Spring 会先查找缓存中是否存在对应的缓存项,如果存在,则直接返回缓存中的结果,否则执行方法并将结果缓存起来。
需要注意的是,在使用 @Cacheable 注解时,方法参数所传递的对象需要实现 Serializable 接口,否则无法进行缓存。
阅读全文