SpringBoot如何使用@Cacheable进行缓存与取值
SpringBoot提供了对缓存的支持,可以使用@Cacheable
注解来实现缓存和取值。下面是一个使用@Cacheable
注解的示例:
示例一:配置文件
在SpringBoot的配置文件中,需要配置缓存的类型和缓存的过期时间。下面是一个示例:
spring:
cache:
type: caffeine
caffeine:
spec: maximumSize=100,expireAfterAccess=5m
上述代码中,spring.cache.type
属性指定了缓存的类型,这里使用了Caffeine缓存。spring.cache.caffeine.spec
属性指定了缓存的最大大小和过期时间。
示例二:Java代码
在Java代码中,需要使用@Cacheable
注解来标记需要缓存的方法。下面是一个示例:
@Service
public class UserService {
@Autowired
private CacheManager cacheManager;
@Cacheable(value = "userCache", key = "#id")
public User getUserById(int id) {
// 从数据库中获取用户信息
User user = userDao.getUserById(id);
return user;
}
}
上述代码中,getUserById()
方法使用了@Cacheable
注解,表示该方法需要缓存。value
属性指定了缓存的名称,key
属性指定了缓存的键值。在方法执行时,会先从缓存中查找数据,如果缓存中存在数据,则直接返回;否则,从数据库中获取数据,并将数据缓到缓存中。
示例三:多个参数的缓存
如果需要缓存的方法有多个参数,可以使用#root.args
来指定缓存的键值。下面是一个示例:
@Service
public class ProductService {
@Autowired
private CacheManager cacheManager;
@Cacheable(value = "productCache", key = "#root.args[0] + '-' + #root.args[1]")
public Product getProductByIdAndName(int id, String name) {
// 从数据库中获取商品信息
Product product = productDao.getProductByIdAndName(id, name);
return product;
}
}
上述代码中,getProductByIdAndName()
方法有两个参数,使用#root.args[0]
和#root.args[1]
来指定缓存的键值。
总结
SpringBoot提供了对缓存的支持,可以使用@Cacheable
注解来实现缓存和取值。在实际开发中,可以根据具体需求选择合适的缓存类型和缓存过期时间,并使用@Cacheable
注解来标记需要缓存的方法。如果需要缓存的方法有多个参数,可以使用#root.args
来指定缓存的键值。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot如何使用@Cacheable进行缓存与取值 - Python技术站