SpringBoot缓存之redis--最简单的使用方式
2024-10-14 12:24:01
第一步:配置redis
这里使用的是yml类型的配置文件
mybatis:
mapper-locations: classpath:mapping/*.xml
spring:
datasource:
name: miaosha
url: jdbc:mysql://127.0.0.1:3306/miaosha?serverTimezone=UTC
username: root
password: 1234
type: com.alibaba.druid.pool.DruidDataSource #数据源
driverClassName: com.mysql.jdbc.Driver
redis:
host: 10.0.75.1 #地址
port: 6379 #端口号
timeout: 20000 #连接超时时间
cache: #缓存类型
type: redis
第二步:在启动类上添加 @EnableCaching 注解
@SpringBootApplication(scanBasePackages = {"com.miaoshaproject"})
@MapperScan("com.miaoshaproject.dao")
@EnableCaching
public class App { public static void main( String[] args ) {
ConfigurableApplicationContext run = SpringApplication.run(App.class, args);
}
}
第三步:在需要缓存的方法上添加 @Cacheable 注解
@Service
@CacheConfig(cacheNames = {"itemService"})
public class ItemServiceImpl implements ItemService { @Override
@Cacheable(value = {"item"},key ="#p0")
public String getItemById(Integer id) {
String name = "123";
return name;
}
}
注:关于springboot缓存名的说明:
使用SpringBoot缓存必须配置名字可以使用@CacheConfig(cacheNames = {"itemService"})在类上配置该类公用的名字,也可以使用@Cacheable(value=”item”)在方法上配置只适用于该方法的名字。如果类和方法上都有配置,以方法上的为准。
springBoot会自动拼装缓存名,规则是:配置的名字+两个冒号+方法的实参;
注:关于@CacheConfig和@Cacheable注解的说明:
@Cacheable(value=”item”),这个注释的意思是,当调用这个方法的时候,会从一个名叫 item 的缓存中查询,如果没有,则执行实际的方法(即查询数据库),并将执行的结果存入缓存中,否则返回缓存中的对象。
在上面代码示例中@Cacheable注解设置了两个参数一个是value,一个是key。key的值"#p0"在执行过程中会被getItemById方法的实参所替换,例如id的值3 那么缓存的名字就会是"item::3";如果不设置key,系统会自动也会是这个效果。
如果是无参方法:
@CacheConfig is a class-level annotation that allows to share the cache names,如果你在你的方法写别的名字,那么依然以方法的名字为准。
最新文章
- Mac合并分区
- 捉虫记(四)线程安全导致的HighCpu
- [.net 面向对象编程基础] (9) 类和类的实例
- web基础
- 基于Bootstrap简单实用的tags标签插件
- SDL2.0的加载图片贴图
- having 子句与where区别
- Android如何判断一个应用在运行
- WPF Dashboard仪表盘控件的实现
- [ipsec][strongswan] 使用wireshark查看strongswan ipsec esp ikev1 ikev2的加密内容
- python编写接口初识一
- CSS3媒体查询的部分重要属性
- (3.1)mysql备份与恢复之mysqldump
- zabbix简介与部署
- 字符集和编码——Unicode(UTF&;UCS)深度历险
- 20. --erg--=--org--=--urg-- 做,工作 (词20、21)
- 关于Python中的ifelse、while和for循环的简单小结
- c++程序时间统计
- QSS样式表之PS黑色风格+白色风格+淡蓝色风格(开源)
- layer,一个可以让你想到即可做到的javascript弹窗(层)解决方案