Springboot中@cacheable 是什么注解
时间: 2023-05-12 14:05:33 浏览: 134
@Cacheable 是 Spring Boot 中的一个注解,它可以用于缓存方法的返回值,以提高应用程序的性能。当使用 @Cacheable 注解时,Spring Boot 会在第一次调用方法时执行方法,并将返回值缓存起来。当下一次调用相同的方法时,Spring Boot 将从缓存中获取返回值,而不是再次执行方法。这样可以大大提高应用程序的性能。
相关问题
springboot开启@Cacheable
在Spring Boot中开启@Cacheable需要三个步骤:
1. 在启动类上加上注解@EnableCaching
2. 在缓存的配置文件中配置缓存的类型和缓存策略
3. 在需要缓存的方法上加上注解@Cacheable
例如,以下代码实现了基于Redis的缓存:
在启动类中加上@EnableCaching注解:
```
@SpringBootApplication
@EnableCaching
public class Application {
// ...
}
```
在application.properties文件中配置Redis:
```
# Redis配置
spring.redis.host=127.0.0.1
spring.redis.port=6379
spring.redis.database=0
spring.redis.password=
```
在需要缓存的方法上加上@Cacheable注解:
```
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserRepository userRepository;
@Override
@Cacheable(value = "user", key = "#id")
public User getUserById(Long id) {
return userRepository.findById(id).orElse(null);
}
}
```
其中,value属性表示缓存的名称,key属性表示缓存的键。
springboot redis @Cacheable
@Cacheable 是 Spring Framework 提供的一个注解,用于将方法的返回值缓存起来,以便下次调用时直接返回缓存中的值,而不必再执行一遍方法。在使用 @Cacheable 注解时,需要指定一个缓存名称,Spring 会根据这个名称去查找对应的缓存实例。如果找不到,则会创建一个新的缓存实例。同时,还可以指定一个 key,用于标识缓存中的数据。如果不指定 key,则默认使用方法的参数作为 key。
下面是一个使用 @Cacheable 注解的示例:
```
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserRepository userRepository;
@Override
@Cacheable(value = "userCache", key = "#id")
public User getUserById(Long id) {
return userRepository.findById(id).orElse(null);
}
}
```
在上面的示例中,我们使用了 @Cacheable 注解来缓存 getUserById 方法的返回值。其中,value 属性指定了缓存名称为 userCache,key 属性指定了缓存的 key 为方法的参数 id。
阅读全文